From 59072de76c4576575057eee8dd2b8bd1d92fbd69 Mon Sep 17 00:00:00 2001 From: MrDeadCe11 Date: Thu, 11 Jul 2024 23:36:59 -0500 Subject: [PATCH 1/8] added armor to the starting items --- packages/contracts/foundry.toml | 7 +- packages/contracts/items.json | 39 +- packages/contracts/mud.config.ts | 2 + .../CharacterSystem.sol/CharacterSystem.json | 2 +- .../contracts/out/IWorld.sol/IWorld.abi.json | 32 +- .../out/IWorld.sol/IWorld.abi.json.d.ts | 32 +- packages/contracts/out/IWorld.sol/IWorld.json | 2 +- .../out/MapSystem.sol/MapSystem.json | 2 +- packages/contracts/script/PostDeploy.s.sol | 628 +++++++++--------- .../contracts/src/codegen/tables/Items.sol | 79 ++- .../src/codegen/world/IItemsSystem.sol | 2 + packages/contracts/src/interfaces/Structs.sol | 146 ++-- .../contracts/src/systems/CombatSystem.sol | 14 +- .../contracts/src/systems/ItemsSystem.sol | 24 +- packages/contracts/test/ItemsSystem.t.sol | 11 +- packages/contracts/test/SetUp.sol | 2 +- packages/contracts/worlds.json | 2 +- 17 files changed, 595 insertions(+), 431 deletions(-) diff --git a/packages/contracts/foundry.toml b/packages/contracts/foundry.toml index 670046776..4582aac6f 100644 --- a/packages/contracts/foundry.toml +++ b/packages/contracts/foundry.toml @@ -16,11 +16,8 @@ allow_paths = [ # projects created from this template and using linked mud packages "../../../mud/packages", ] -extra_output_files = [ - "abi", - "evm.bytecode" -] -fs_permissions = [{ access = "read", path = "./"}] +extra_output_files = ["abi", "evm.bytecode"] +fs_permissions = [{ access = "read-write", path = "./" }] libs = ["node_modules", "lib"] [profile.base-sepolia] diff --git a/packages/contracts/items.json b/packages/contracts/items.json index 1c7e033b0..97ce8bd36 100644 --- a/packages/contracts/items.json +++ b/packages/contracts/items.json @@ -1,12 +1,33 @@ { + "armor": [ + { + "dropChance": 20000000, + "initialSupply": 10000000000000000000, + "metadataUri": "1_rags.json", + "name": "Rags", + "stats": { + "agiModifier": 0, + "armorModifier": 1, + "classRestrictions": [], + "hitPointModifier": 0, + "intModifier": 0, + "minLevel": 0, + "strModifier": 0 + } + } + ], "metadataUriPrefix": "ipfs://QmVUaqRpQJHyqugYd12Qf2iErNSoGvLF1cbeRHpmX8bChs/", - "items": [ + "weapons": [ { + "dropChance": 20000000, + "initialSupply": 10000000000000000000, "metadataUri": "1_rusty_sword.json", "name": "Rusty Sword", "stats": { "agiModifier": 4, - "classRestrictions": [], + "classRestrictions": [ + 0 + ], "hitPointModifier": 6, "intModifier": 5, "maxDamage": 2, @@ -16,11 +37,15 @@ } }, { + "dropChance": 20000000, + "initialSupply": 10000000000000000000, "metadataUri": "2_cracked_dagger.json", "name": "Cracked Dagger", "stats": { "agiModifier": 4, - "classRestrictions": [], + "classRestrictions": [ + 1 + ], "hitPointModifier": 6, "intModifier": 5, "maxDamage": 2, @@ -30,11 +55,15 @@ } }, { + "dropChance": 20000000, + "initialSupply": 10000000000000000000, "metadataUri": "3_cobbled_wand.json", "name": "Cobbled Wand", "stats": { "agiModifier": 4, - "classRestrictions": [], + "classRestrictions": [ + 2 + ], "hitPointModifier": 6, "intModifier": 5, "maxDamage": 2, @@ -44,4 +73,4 @@ } } ] -} +} \ No newline at end of file diff --git a/packages/contracts/mud.config.ts b/packages/contracts/mud.config.ts index 07a1a3365..1d7f83753 100644 --- a/packages/contracts/mud.config.ts +++ b/packages/contracts/mud.config.ts @@ -116,7 +116,9 @@ export default defineWorld({ schema: { itemId: "uint256", itemType: "ItemType", + dropChance: "uint256", stats: "bytes", + // probability in 10^6 e.g. 20_000_000 = 20% }, key: ["itemId"], }, diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json index daec4f343..aabe66d38 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061422b806100206000396000f3fe6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc5780633d0854ae116100e15780633d0854ae1461023857806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd578063238015701461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e610148366004613874565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b61018636600461388d565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b6366004613874565b61043f565b6040516101629190613903565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613a3e565b61045f565b604051908152602001610162565b34801561021757600080fd5b5061022b610226366004613874565b6106c1565b6040516101629190613a97565b34801561024457600080fd5b506101fd610253366004613874565b6106cc565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b366004613874565b61074a565b34801561029c57600080fd5b5061018b6102ab366004613874565b610755565b6102c36102be366004613aaa565b610881565b005b3480156102d157600080fd5b506101fd6102e0366004613874565b6109f9565b3480156102f157600080fd5b506102c3610300366004613ae7565b610a8e565b34801561031157600080fd5b506102c3610320366004613874565b610aff565b34801561033157600080fd5b5061014e610340366004613874565b610c31565b34801561035157600080fd5b5061014e610c3c565b34801561036657600080fd5b506101fd610375366004613874565b610c46565b34801561038657600080fd5b506101fd610395366004613874565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b61044761381e565b61043982610c51565b600061045a610d03565b905090565b60008061046a610d35565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610c3c565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610d68565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401613b7e565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106249190810190613bdc565b5061062e816109f9565b915061063a8286610db5565b6106448282610e84565b61064d84610f03565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001610fa8565b6106af8285611061565b6106b981846110e0565b509392505050565b600061043982611113565b60006106d860136111bd565b82106106e657506014919050565b60005b601481101561074457826106fc826111bd565b1115801561071b575082610719610714836001613c27565b6111bd565b115b156107325761072b816001613c27565b9150610744565b8061073c81613c3a565b9150506106e9565b50919050565b600061043982611239565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d6112cb565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190613c54565b60015b15610862576107f06112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190613c54565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a826112d5565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611367565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e8383611423565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401613c71565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a40000000000000000000000000000000000000000000000000000000017905261150c565b5050505050565b600080610a046112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190613c54565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611367565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff8316826110e0565b5050565b610b0881611367565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d816112d5565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b610bbc81674563918244f400006115ba565b610bc4610c3c565b6001600160a01b031663f9d175ed826040518263ffffffff1660e01b8152600401610bf191815260200190565b600060405180830381600087803b158015610c0b57600080fd5b505af1158015610c1f573d6000803e3d6000fd5b50505050610c2e816001611655565b50565b6000610439826116d9565b600061045a611776565b600061043982611780565b610c5961381e565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610c8f57610c8f613c99565b602090810291909101015260008080610ce87f7462554400000000000000000000000053746174730000000000000000000000857ee1080020200120202020200000000000000000000000000000000000000000611812565b925092509250610cf98383836118e2565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610d325750335b90565b600080610d4061195a565b90506000610d4f8260006119c2565b610d5a906001613c27565b905061043982600083611a73565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610deb57610deb613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610e4a919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611bbb565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610eba57610eba613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610e4a91815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610f3c57610f3c613c99565b60209081029190910101526000610f947f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611c70565b9050610fa08160f81c90565b949350505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610fde57610fde613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004e616d6545786973747300000000000060001b8260008560405160200161102c91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611bbb565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061109757611097613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610e4a91815260200190565b610afb61110c7f4368617261637465727300000000000000000000000000000000000000000000611d2d565b8383611d7a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061114c5761114c613c99565b602090810291909101015260006111a57f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611c70565b905060f881901c6002811115610fa057610fa06138cf565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106111f9576111f9613c99565b60209081029190910101526000610fa07f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611c70565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061127257611272613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611c70565b600061045a61195a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061130e5761130e613c99565b60209081029190910101526000610f947f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611c70565b60006113716112cb565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa1580156113de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190613c54565b6001600160a01b0316611413610450565b6001600160a01b03161492915050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061145957611459613c99565b6020908102919091010152610e7f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561149c5761149c6138cf565b6040516020016114d7919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611bbb565b606060008061152261151d85613caf565b611dcc565b91509150816000801b03611588576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052610fa08285611e9c565b6115c2611f77565b6001600160a01b03166340c10f196115d984610c31565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b15801561163957600080fd5b505af115801561164d573d6000803e3d6000fd5b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061168b5761168b613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610e4a91151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061171257611712613c99565b6020908102919091010152600061176b7f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611c70565b60601c949350505050565b600061045a611f81565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106117b9576117b9613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611c70565b6060600060606000611822611f81565b9050306001600160a01b0382160361184b5761183f878787611fc0565b935093509350506118d9565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611894908a908a908a90600401613d3b565b600060405180830381865afa1580156118b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261183f9190810190613d64565b93509350939050565b6118ea61381e565b6118f3846120c8565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611931576119316138cf565b6002811115611942576119426138cf565b90529790975250505093909252509195945050505050565b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611c70565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611a0757611a07613c99565b6020026020010181815250508260001b81600181518110611a2a57611a2a613c99565b60209081029190910101526000611a6a7f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611c70565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611ab457611ab4613c99565b6020026020010181815250508260001b81600181518110611ad757611ad7613c99565b602002602001018181525050611b3d7f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611b2091815260200190565b60408051601f19818403018152919052630100080160dd1b611bbb565b50505050565b6000611b5160706010613c27565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611bc5611f81565b9050306001600160a01b03821603611be957611be48686868686612136565b61164d565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611c369089908990899089908990600401613dc7565b600060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b50505050505050505050565b600080611c7b611f81565b9050306001600160a01b03821603611ca157611c998686868661214b565b915050610fa0565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611cec908990899089908990600401613e0e565b602060405180830381865afa158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c999190613e3d565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611db357611db3613c99565b602002602001018181525050611b3d8482600085612178565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611e2557611e25613c99565b602090810291909101015260008080611e7e7f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000611812565b925092509250611e8f838383612229565b9550955050505050915091565b60606000611ea8611776565b90506001600160a01b0381163003611ee9576000611ed0611ec7610d03565b60008787612241565b9350905080611ee257611ee28361237c565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611f309087908790600401613b7e565b6000604051808303816000875af1158015611f4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fa09190810190613bdc565b600061045a612384565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680611fbb573391505090565b919050565b6060600060606000611fd1856123e2565b9050611fde878783612405565b93506000611feb8661243e565b905080156120bd57611ffd888861247b565b935066ffffffffffffff841667ffffffffffffffff81111561202157612021613979565b6040519080825280601f01601f19166020018201604052801561204b576020820181803683370190505b5092506020830160005b828160ff1610156120ba57600061206d8b8b8461248e565b9050600061208a888460ff166028026038011c64ffffffffff1690565b9050612099826000838761250e565b6120a38185613c27565b9350505080806120b290613e56565b915050612055565b50505b505093509350939050565b6000806000806000806000806120e2896000016020015190565b60408a015160608b0151919950975060f81c6002811115612105576121056138cf565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f2858561214584876125da565b8561260b565b6000611a6a61215a86866128af565b60ff858116601b0360080285901c1661217385876125da565b612905565b6000612182611f81565b9050306001600160a01b038216036121a5576121a085858585612956565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea862906121f0908890889088908890600401613e75565b600060405180830381600087803b15801561220a57600080fd5b505af115801561221e573d6000803e3d6000fd5b505050505050505050565b60008061223585612991565b90969095509350505050565b60006060600080612251866129a6565b90925090506001600160a01b0382166122a2578561226e87612a4a565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190613b7e565b806122b1576122b18689612b78565b861561231d577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061230582612bc4565b905061231a826123158b84613c27565b612c3d565b50505b60006123298760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146123615761235c88888488612cd9565b61236d565b61236d88888488612d51565b90999098509650505050505050565b805160208201fd5b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360017e79070001141414141414000000000000000000000000000000000000000000611c70565b600060086123f260026020613eb4565b6123fc9190613ec7565b9190911c919050565b6060816000036124245750604080516020810190915260008152611bb4565b600061243085856128af565b9050611a6a81600085612db2565b6000600860018061245160026020613eb4565b61245b9190613eb4565b6124659190613eb4565b61246f9190613ec7565b8260ff911c1692915050565b6000611bb461248a8484612dd5565b5490565b600083836040516020016124a3929190613ede565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b821561259557602083106125385760208304840193506020838161253457612534613f1a565b0692505b821561259557602083900360008184101561255b5750600019600884021c612565565b50600019600882021c5b8554600886021b818451168219821617845250818411612586575050611b3d565b50600194909401939182900391015b5b602082106125b75783548152600190930192601f1990910190602001612596565b8115611b3d576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761260160ff601b83900360080287901c1683613c27565b91506001016125df565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361269557837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161268893929190613f30565b60405180910390a2611b3d565b60006126a185856128af565b905060006126ae86612e2b565b905060005b81518110156127835760008282815181106126d0576126d0613c99565b602002602001015190506126fc6004826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561277a576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612747908b908b908b908b90600401613f63565b600060405180830381600087803b15801561276157600080fd5b505af1158015612775573d6000803e3d6000fd5b505050505b506001016126b3565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516127b893929190613f30565b60405180910390a26127d3828565ffffffffffff1685612ed2565b60005b81518110156128a65760008282815181106127f3576127f3613c99565b6020026020010151905061281f6008826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561289d576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061286a908b908b908b908b90600401613f63565b600060405180830381600087803b15801561288457600080fd5b505af1158015612898573d6000803e3d6000fd5b505050505b506001016127d6565b50505050505050565b600082826040516020016128c4929190613ede565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b60006020821061292b5760208204840193506020828161292757612927613f1a565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b6000612962858561247b565b9050600061297f828560ff166028026038011c64ffffffffff1690565b905061164d8686866000858888612ee8565b602081015160408201516000905b9050915091565b604080516001808252818301909252600091829182916020808301908036833701905050905083816000815181106129e0576129e0613c99565b602090810291909101015260008080612a397f7462776f726c6400000000000000000053797374656d73000000000000000000857e15020014010000000000000000000000000000000000000000000000000000611fc0565b925092509250611e8f838383613322565b606081601081901b6000612a5d8361332e565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ab857612ab37fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613345565b612aef565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612b1657612b1183613345565b612b4d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612b5f93929190613f9c565b6040516020818303038152906040529350505050919050565b612b8282826133cb565b610afb57612b8f82612a4a565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e992919061402a565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612bfd57612bfd613c99565b60209081029190910101526000610fa07f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b61214b565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612c7357612c73613c99565b602002602001018181525050610e7f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612cbc91815260200190565b60408051601f19818403018152919052630100080160dd1b612136565b60006060836001600160a01b03166000612cf4858989613429565b604051612d019190614055565b60006040518083038185875af1925050503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b606091505b509097909650945050505050565b60006060836001600160a01b0316612d6a848888613429565b604051612d779190614055565b600060405180830381855af49150503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b60405160208101601f19603f84840101166040528282526106b98585858461250e565b60008282604051602001612dea929190613ede565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612e6557612e65613c99565b60209081029190910101526000612e9d7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613458565b9050610fa0612eaf8260008451613492565b613520565b60008160ff1682612ec58560581c90565b1660ff1614905092915050565b610e7f83838351612ee38560200190565b613531565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612fa8577f74620000000000000000000000000000000000000000000000000000000000008788604051602001612f6691815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e9939291600401614071565b6000612fc3828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683612fdc9190613eb4565b612fe69190613c27565b9050808214158015613008575081612ffe86886140b2565b64ffffffffff1614155b15613058576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff1611156130a9576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b60006130b68489846135f0565b905060006130c38b612e2b565b905060005b815181101561318e5760008282815181106130e5576130e5613c99565b602002602001015190506131116010826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561318557606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161315297969594939291906140d7565b600060405180830381600087803b15801561316c57600080fd5b505af1158015613180573d6000803e3d6000fd5b505050505b506001016130c8565b5064ffffffffff881660005b8a60ff168160ff1610156131cd576131c1878260ff166028026038011c64ffffffffff1690565b9091019060010161319a565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161320896959493929190614135565b60405180910390a2508284146132295760006132248c8c612dd5565b839055505b60006132368c8c8c61248e565b905061324a818a64ffffffffff1689612ed2565b5060005b815181101561331457600082828151811061326b5761326b613c99565b602002602001015190506132976020826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561330b57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016132d897969594939291906140d7565b600060405180830381600087803b1580156132f257600080fd5b505af1158015613306573d6000803e3d6000fd5b505050505b5060010161324e565b505050505050505050505050565b600080612235856136be565b600061333c60706010613c27565b9190911b919050565b606060005b601081101561339b576fffffffffffffffffffffffffffffffff198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561339b5760010161334a565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610fa0565b60006134197f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836136da565b80611bb45750611bb483836136da565b606083838360405160200161344093929190614191565b60405160208183030381529060405290509392505050565b6060610fa061346885858561248e565b600061348d85613478898961247b565b9060ff166028026038011c64ffffffffff1690565b612db2565b6000818311806134a25750835182115b156134df578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e9939291906141d0565b602084016134ed8482613c27565b905060006134fb8585613eb4565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611bb483601560006137a3565b82156135ab576020831061355b5760208304840193506020838161355757613557613f1a565b0692505b82156135ab5760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161359c575050611b3d565b50600194909401939182900391015b5b602082106135cd5780518455600190930192601f19909101906020016135ac565b8115611b3d576000600019600884021c8554835182191691161785555050505050565b600064ffffffffff821115613634576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613666578085038201915061366e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c61299f565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061371357613713613c99565b602002602001018181525050826001600160a01b031660001b8160018151811061373f5761373f613c99565b602090810291909101015260006137977f7462776f726c640000000000000000005265736f75726365416363657373000083837e0101000100000000000000000000000000000000000000000000000000000061214b565b9050611a6a8160f81c90565b606060006137b18560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816137d7576137d7613f1a565b04905060405193506020840160208202810160405281855260005b82811015613812578451871c8252938701936020909101906001016137f2565b50505050509392505050565b60405180610100016040528060008152602001600081526020016000600281111561384b5761384b6138cf565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561388657600080fd5b5035919050565b60006020828403121561389f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bb457600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110610c2e57634e487b7160e01b600052602160045260246000fd5b81518152602080830151908201526040820151610100820190613925816138e5565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114610c2e57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139b8576139b8613979565b604052919050565b600067ffffffffffffffff8211156139da576139da613979565b50601f01601f191660200190565b600082601f8301126139f957600080fd5b8135613a0c613a07826139c0565b61398f565b818152846020838601011115613a2157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613a5357600080fd5b8335613a5e81613964565b925060208401359150604084013567ffffffffffffffff811115613a8157600080fd5b613a8d868287016139e8565b9150509250925092565b60208101613aa4836138e5565b91905290565b600080600060608486031215613abf57600080fd5b8335925060208401359150604084013560038110613adc57600080fd5b809150509250925092565b60008060408385031215613afa57600080fd5b82359150602083013567ffffffffffffffff811115613b1857600080fd5b613b24858286016139e8565b9150509250929050565b60005b83811015613b49578181015183820152602001613b31565b50506000910152565b60008151808452613b6a816020860160208601613b2e565b601f01601f19169290920160200192915050565b828152604060208201526000610fa06040830184613b52565b600082601f830112613ba857600080fd5b8151613bb6613a07826139c0565b818152846020838601011115613bcb57600080fd5b610fa0826020830160208701613b2e565b600060208284031215613bee57600080fd5b815167ffffffffffffffff811115613c0557600080fd5b610fa084828501613b97565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439613c11565b60006000198203613c4d57613c4d613c11565b5060010190565b600060208284031215613c6657600080fd5b8151611bb481613964565b838152613c7d836138e5565b826020820152606060408201526000611a6a6060830184613b52565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf75780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b83811015613d3057815187529582019590820190600101613d14565b509495945050505050565b838152606060208201526000613d546060830185613cff565b9050826040830152949350505050565b600080600060608486031215613d7957600080fd5b835167ffffffffffffffff80821115613d9157600080fd5b613d9d87838801613b97565b9450602086015193506040860151915080821115613dba57600080fd5b50613a8d86828701613b97565b85815260a060208201526000613de060a0830187613cff565b60ff861660408401528281036060840152613dfb8186613b52565b9150508260808301529695505050505050565b848152608060208201526000613e276080830186613cff565b60ff949094166040830152506060015292915050565b600060208284031215613e4f57600080fd5b5051919050565b600060ff821660ff8103613e6c57613e6c613c11565b60010192915050565b848152608060208201526000613e8e6080830186613cff565b60ff851660408401528281036060840152613ea98185613b52565b979650505050505050565b8181038181111561043957610439613c11565b808202811582820484141761043957610439613c11565b8281526000602080830184516020860160005b82811015613f0d57815184529284019290840190600101613ef1565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b606081526000613f436060830186613cff565b65ffffffffffff851660208401528281036040840152610cf98185613b52565b848152608060208201526000613f7c6080830186613cff565b65ffffffffffff851660408401528281036060840152613ea98185613b52565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451613ffd816003860160208901613b2e565b80840190508160038201528451915061401d826004830160208801613b2e565b0160040195945050505050565b60408152600061403d6040830185613b52565b90506001600160a01b03831660208301529392505050565b60008251614067818460208701613b2e565b9190910192915050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611a6a6060830184613b52565b64ffffffffff8181168382160190808211156140d0576140d0613c11565b5092915050565b87815260e0602082015260006140f060e0830189613cff565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526141278185613b52565b9a9950505050505050505050565b60c08152600061414860c0830189613cff565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526141848185613b52565b9998505050505050505050565b600084516141a3818460208901613b2e565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006141e36060830186613b52565b6020830194909452506040015291905056fea26469706673582212205343db4bfeaaf942566bbd790ef0e64cd9c2e7ee2af78a797a460cb8dc50f1ae64736f6c63430008180033","sourceMap":"1738:5941:210:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc5780633d0854ae116100e15780633d0854ae1461023857806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd578063238015701461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e610148366004613874565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b61018636600461388d565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b6366004613874565b61043f565b6040516101629190613903565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613a3e565b61045f565b604051908152602001610162565b34801561021757600080fd5b5061022b610226366004613874565b6106c1565b6040516101629190613a97565b34801561024457600080fd5b506101fd610253366004613874565b6106cc565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b366004613874565b61074a565b34801561029c57600080fd5b5061018b6102ab366004613874565b610755565b6102c36102be366004613aaa565b610881565b005b3480156102d157600080fd5b506101fd6102e0366004613874565b6109f9565b3480156102f157600080fd5b506102c3610300366004613ae7565b610a8e565b34801561031157600080fd5b506102c3610320366004613874565b610aff565b34801561033157600080fd5b5061014e610340366004613874565b610c31565b34801561035157600080fd5b5061014e610c3c565b34801561036657600080fd5b506101fd610375366004613874565b610c46565b34801561038657600080fd5b506101fd610395366004613874565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b61044761381e565b61043982610c51565b600061045a610d03565b905090565b60008061046a610d35565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610c3c565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610d68565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401613b7e565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106249190810190613bdc565b5061062e816109f9565b915061063a8286610db5565b6106448282610e84565b61064d84610f03565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001610fa8565b6106af8285611061565b6106b981846110e0565b509392505050565b600061043982611113565b60006106d860136111bd565b82106106e657506014919050565b60005b601481101561074457826106fc826111bd565b1115801561071b575082610719610714836001613c27565b6111bd565b115b156107325761072b816001613c27565b9150610744565b8061073c81613c3a565b9150506106e9565b50919050565b600061043982611239565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d6112cb565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190613c54565b60015b15610862576107f06112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190613c54565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a826112d5565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611367565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e8383611423565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401613c71565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a40000000000000000000000000000000000000000000000000000000017905261150c565b5050505050565b600080610a046112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190613c54565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611367565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff8316826110e0565b5050565b610b0881611367565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d816112d5565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b610bbc81674563918244f400006115ba565b610bc4610c3c565b6001600160a01b031663f9d175ed826040518263ffffffff1660e01b8152600401610bf191815260200190565b600060405180830381600087803b158015610c0b57600080fd5b505af1158015610c1f573d6000803e3d6000fd5b50505050610c2e816001611655565b50565b6000610439826116d9565b600061045a611776565b600061043982611780565b610c5961381e565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610c8f57610c8f613c99565b602090810291909101015260008080610ce87f7462554400000000000000000000000053746174730000000000000000000000857ee1080020200120202020200000000000000000000000000000000000000000611812565b925092509250610cf98383836118e2565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610d325750335b90565b600080610d4061195a565b90506000610d4f8260006119c2565b610d5a906001613c27565b905061043982600083611a73565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610deb57610deb613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610e4a919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611bbb565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610eba57610eba613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610e4a91815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610f3c57610f3c613c99565b60209081029190910101526000610f947f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611c70565b9050610fa08160f81c90565b949350505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610fde57610fde613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004e616d6545786973747300000000000060001b8260008560405160200161102c91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611bbb565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061109757611097613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610e4a91815260200190565b610afb61110c7f4368617261637465727300000000000000000000000000000000000000000000611d2d565b8383611d7a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061114c5761114c613c99565b602090810291909101015260006111a57f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611c70565b905060f881901c6002811115610fa057610fa06138cf565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106111f9576111f9613c99565b60209081029190910101526000610fa07f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611c70565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061127257611272613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611c70565b600061045a61195a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061130e5761130e613c99565b60209081029190910101526000610f947f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611c70565b60006113716112cb565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa1580156113de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190613c54565b6001600160a01b0316611413610450565b6001600160a01b03161492915050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061145957611459613c99565b6020908102919091010152610e7f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561149c5761149c6138cf565b6040516020016114d7919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611bbb565b606060008061152261151d85613caf565b611dcc565b91509150816000801b03611588576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052610fa08285611e9c565b6115c2611f77565b6001600160a01b03166340c10f196115d984610c31565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b15801561163957600080fd5b505af115801561164d573d6000803e3d6000fd5b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061168b5761168b613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610e4a91151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061171257611712613c99565b6020908102919091010152600061176b7f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611c70565b60601c949350505050565b600061045a611f81565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106117b9576117b9613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611c70565b6060600060606000611822611f81565b9050306001600160a01b0382160361184b5761183f878787611fc0565b935093509350506118d9565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611894908a908a908a90600401613d3b565b600060405180830381865afa1580156118b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261183f9190810190613d64565b93509350939050565b6118ea61381e565b6118f3846120c8565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611931576119316138cf565b6002811115611942576119426138cf565b90529790975250505093909252509195945050505050565b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611c70565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611a0757611a07613c99565b6020026020010181815250508260001b81600181518110611a2a57611a2a613c99565b60209081029190910101526000611a6a7f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611c70565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611ab457611ab4613c99565b6020026020010181815250508260001b81600181518110611ad757611ad7613c99565b602002602001018181525050611b3d7f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611b2091815260200190565b60408051601f19818403018152919052630100080160dd1b611bbb565b50505050565b6000611b5160706010613c27565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611bc5611f81565b9050306001600160a01b03821603611be957611be48686868686612136565b61164d565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611c369089908990899089908990600401613dc7565b600060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b50505050505050505050565b600080611c7b611f81565b9050306001600160a01b03821603611ca157611c998686868661214b565b915050610fa0565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611cec908990899089908990600401613e0e565b602060405180830381865afa158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c999190613e3d565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611db357611db3613c99565b602002602001018181525050611b3d8482600085612178565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611e2557611e25613c99565b602090810291909101015260008080611e7e7f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000611812565b925092509250611e8f838383612229565b9550955050505050915091565b60606000611ea8611776565b90506001600160a01b0381163003611ee9576000611ed0611ec7610d03565b60008787612241565b9350905080611ee257611ee28361237c565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611f309087908790600401613b7e565b6000604051808303816000875af1158015611f4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fa09190810190613bdc565b600061045a612384565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680611fbb573391505090565b919050565b6060600060606000611fd1856123e2565b9050611fde878783612405565b93506000611feb8661243e565b905080156120bd57611ffd888861247b565b935066ffffffffffffff841667ffffffffffffffff81111561202157612021613979565b6040519080825280601f01601f19166020018201604052801561204b576020820181803683370190505b5092506020830160005b828160ff1610156120ba57600061206d8b8b8461248e565b9050600061208a888460ff166028026038011c64ffffffffff1690565b9050612099826000838761250e565b6120a38185613c27565b9350505080806120b290613e56565b915050612055565b50505b505093509350939050565b6000806000806000806000806120e2896000016020015190565b60408a015160608b0151919950975060f81c6002811115612105576121056138cf565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f2858561214584876125da565b8561260b565b6000611a6a61215a86866128af565b60ff858116601b0360080285901c1661217385876125da565b612905565b6000612182611f81565b9050306001600160a01b038216036121a5576121a085858585612956565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea862906121f0908890889088908890600401613e75565b600060405180830381600087803b15801561220a57600080fd5b505af115801561221e573d6000803e3d6000fd5b505050505050505050565b60008061223585612991565b90969095509350505050565b60006060600080612251866129a6565b90925090506001600160a01b0382166122a2578561226e87612a4a565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190613b7e565b806122b1576122b18689612b78565b861561231d577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061230582612bc4565b905061231a826123158b84613c27565b612c3d565b50505b60006123298760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146123615761235c88888488612cd9565b61236d565b61236d88888488612d51565b90999098509650505050505050565b805160208201fd5b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360017e79070001141414141414000000000000000000000000000000000000000000611c70565b600060086123f260026020613eb4565b6123fc9190613ec7565b9190911c919050565b6060816000036124245750604080516020810190915260008152611bb4565b600061243085856128af565b9050611a6a81600085612db2565b6000600860018061245160026020613eb4565b61245b9190613eb4565b6124659190613eb4565b61246f9190613ec7565b8260ff911c1692915050565b6000611bb461248a8484612dd5565b5490565b600083836040516020016124a3929190613ede565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b821561259557602083106125385760208304840193506020838161253457612534613f1a565b0692505b821561259557602083900360008184101561255b5750600019600884021c612565565b50600019600882021c5b8554600886021b818451168219821617845250818411612586575050611b3d565b50600194909401939182900391015b5b602082106125b75783548152600190930192601f1990910190602001612596565b8115611b3d576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761260160ff601b83900360080287901c1683613c27565b91506001016125df565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361269557837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161268893929190613f30565b60405180910390a2611b3d565b60006126a185856128af565b905060006126ae86612e2b565b905060005b81518110156127835760008282815181106126d0576126d0613c99565b602002602001015190506126fc6004826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561277a576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612747908b908b908b908b90600401613f63565b600060405180830381600087803b15801561276157600080fd5b505af1158015612775573d6000803e3d6000fd5b505050505b506001016126b3565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516127b893929190613f30565b60405180910390a26127d3828565ffffffffffff1685612ed2565b60005b81518110156128a65760008282815181106127f3576127f3613c99565b6020026020010151905061281f6008826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561289d576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061286a908b908b908b908b90600401613f63565b600060405180830381600087803b15801561288457600080fd5b505af1158015612898573d6000803e3d6000fd5b505050505b506001016127d6565b50505050505050565b600082826040516020016128c4929190613ede565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b60006020821061292b5760208204840193506020828161292757612927613f1a565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b6000612962858561247b565b9050600061297f828560ff166028026038011c64ffffffffff1690565b905061164d8686866000858888612ee8565b602081015160408201516000905b9050915091565b604080516001808252818301909252600091829182916020808301908036833701905050905083816000815181106129e0576129e0613c99565b602090810291909101015260008080612a397f7462776f726c6400000000000000000053797374656d73000000000000000000857e15020014010000000000000000000000000000000000000000000000000000611fc0565b925092509250611e8f838383613322565b606081601081901b6000612a5d8361332e565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ab857612ab37fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613345565b612aef565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612b1657612b1183613345565b612b4d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612b5f93929190613f9c565b6040516020818303038152906040529350505050919050565b612b8282826133cb565b610afb57612b8f82612a4a565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e992919061402a565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612bfd57612bfd613c99565b60209081029190910101526000610fa07f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b61214b565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612c7357612c73613c99565b602002602001018181525050610e7f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612cbc91815260200190565b60408051601f19818403018152919052630100080160dd1b612136565b60006060836001600160a01b03166000612cf4858989613429565b604051612d019190614055565b60006040518083038185875af1925050503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b606091505b509097909650945050505050565b60006060836001600160a01b0316612d6a848888613429565b604051612d779190614055565b600060405180830381855af49150503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b60405160208101601f19603f84840101166040528282526106b98585858461250e565b60008282604051602001612dea929190613ede565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612e6557612e65613c99565b60209081029190910101526000612e9d7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613458565b9050610fa0612eaf8260008451613492565b613520565b60008160ff1682612ec58560581c90565b1660ff1614905092915050565b610e7f83838351612ee38560200190565b613531565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612fa8577f74620000000000000000000000000000000000000000000000000000000000008788604051602001612f6691815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e9939291600401614071565b6000612fc3828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683612fdc9190613eb4565b612fe69190613c27565b9050808214158015613008575081612ffe86886140b2565b64ffffffffff1614155b15613058576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff1611156130a9576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b60006130b68489846135f0565b905060006130c38b612e2b565b905060005b815181101561318e5760008282815181106130e5576130e5613c99565b602002602001015190506131116010826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561318557606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161315297969594939291906140d7565b600060405180830381600087803b15801561316c57600080fd5b505af1158015613180573d6000803e3d6000fd5b505050505b506001016130c8565b5064ffffffffff881660005b8a60ff168160ff1610156131cd576131c1878260ff166028026038011c64ffffffffff1690565b9091019060010161319a565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161320896959493929190614135565b60405180910390a2508284146132295760006132248c8c612dd5565b839055505b60006132368c8c8c61248e565b905061324a818a64ffffffffff1689612ed2565b5060005b815181101561331457600082828151811061326b5761326b613c99565b602002602001015190506132976020826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561330b57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016132d897969594939291906140d7565b600060405180830381600087803b1580156132f257600080fd5b505af1158015613306573d6000803e3d6000fd5b505050505b5060010161324e565b505050505050505050505050565b600080612235856136be565b600061333c60706010613c27565b9190911b919050565b606060005b601081101561339b576fffffffffffffffffffffffffffffffff198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561339b5760010161334a565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610fa0565b60006134197f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836136da565b80611bb45750611bb483836136da565b606083838360405160200161344093929190614191565b60405160208183030381529060405290509392505050565b6060610fa061346885858561248e565b600061348d85613478898961247b565b9060ff166028026038011c64ffffffffff1690565b612db2565b6000818311806134a25750835182115b156134df578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e9939291906141d0565b602084016134ed8482613c27565b905060006134fb8585613eb4565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611bb483601560006137a3565b82156135ab576020831061355b5760208304840193506020838161355757613557613f1a565b0692505b82156135ab5760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161359c575050611b3d565b50600194909401939182900391015b5b602082106135cd5780518455600190930192601f19909101906020016135ac565b8115611b3d576000600019600884021c8554835182191691161785555050505050565b600064ffffffffff821115613634576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613666578085038201915061366e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c61299f565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061371357613713613c99565b602002602001018181525050826001600160a01b031660001b8160018151811061373f5761373f613c99565b602090810291909101015260006137977f7462776f726c640000000000000000005265736f75726365416363657373000083837e0101000100000000000000000000000000000000000000000000000000000061214b565b9050611a6a8160f81c90565b606060006137b18560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816137d7576137d7613f1a565b04905060405193506020840160208202810160405281855260005b82811015613812578451871c8252938701936020909101906001016137f2565b50505050509392505050565b60405180610100016040528060008152602001600081526020016000600281111561384b5761384b6138cf565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561388657600080fd5b5035919050565b60006020828403121561389f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bb457600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110610c2e57634e487b7160e01b600052602160045260246000fd5b81518152602080830151908201526040820151610100820190613925816138e5565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114610c2e57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139b8576139b8613979565b604052919050565b600067ffffffffffffffff8211156139da576139da613979565b50601f01601f191660200190565b600082601f8301126139f957600080fd5b8135613a0c613a07826139c0565b61398f565b818152846020838601011115613a2157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613a5357600080fd5b8335613a5e81613964565b925060208401359150604084013567ffffffffffffffff811115613a8157600080fd5b613a8d868287016139e8565b9150509250925092565b60208101613aa4836138e5565b91905290565b600080600060608486031215613abf57600080fd5b8335925060208401359150604084013560038110613adc57600080fd5b809150509250925092565b60008060408385031215613afa57600080fd5b82359150602083013567ffffffffffffffff811115613b1857600080fd5b613b24858286016139e8565b9150509250929050565b60005b83811015613b49578181015183820152602001613b31565b50506000910152565b60008151808452613b6a816020860160208601613b2e565b601f01601f19169290920160200192915050565b828152604060208201526000610fa06040830184613b52565b600082601f830112613ba857600080fd5b8151613bb6613a07826139c0565b818152846020838601011115613bcb57600080fd5b610fa0826020830160208701613b2e565b600060208284031215613bee57600080fd5b815167ffffffffffffffff811115613c0557600080fd5b610fa084828501613b97565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439613c11565b60006000198203613c4d57613c4d613c11565b5060010190565b600060208284031215613c6657600080fd5b8151611bb481613964565b838152613c7d836138e5565b826020820152606060408201526000611a6a6060830184613b52565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf75780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b83811015613d3057815187529582019590820190600101613d14565b509495945050505050565b838152606060208201526000613d546060830185613cff565b9050826040830152949350505050565b600080600060608486031215613d7957600080fd5b835167ffffffffffffffff80821115613d9157600080fd5b613d9d87838801613b97565b9450602086015193506040860151915080821115613dba57600080fd5b50613a8d86828701613b97565b85815260a060208201526000613de060a0830187613cff565b60ff861660408401528281036060840152613dfb8186613b52565b9150508260808301529695505050505050565b848152608060208201526000613e276080830186613cff565b60ff949094166040830152506060015292915050565b600060208284031215613e4f57600080fd5b5051919050565b600060ff821660ff8103613e6c57613e6c613c11565b60010192915050565b848152608060208201526000613e8e6080830186613cff565b60ff851660408401528281036060840152613ea98185613b52565b979650505050505050565b8181038181111561043957610439613c11565b808202811582820484141761043957610439613c11565b8281526000602080830184516020860160005b82811015613f0d57815184529284019290840190600101613ef1565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b606081526000613f436060830186613cff565b65ffffffffffff851660208401528281036040840152610cf98185613b52565b848152608060208201526000613f7c6080830186613cff565b65ffffffffffff851660408401528281036060840152613ea98185613b52565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451613ffd816003860160208901613b2e565b80840190508160038201528451915061401d826004830160208801613b2e565b0160040195945050505050565b60408152600061403d6040830185613b52565b90506001600160a01b03831660208301529392505050565b60008251614067818460208701613b2e565b9190910192915050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611a6a6060830184613b52565b64ffffffffff8181168382160190808211156140d0576140d0613c11565b5092915050565b87815260e0602082015260006140f060e0830189613cff565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526141278185613b52565b9a9950505050505050505050565b60c08152600061414860c0830189613cff565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526141848185613b52565b9998505050505050505050565b600084516141a3818460208901613b2e565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006141e36060830186613b52565b6020830194909452506040015291905056fea26469706673582212205343db4bfeaaf942566bbd790ef0e64cd9c2e7ee2af78a797a460cb8dc50f1ae64736f6c63430008180033","sourceMap":"1738:5941:210:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:144;;;;;;;;;;-1:-1:-1;2899:144:210;;;;;:::i;:::-;3032:2;3008:26;;2899:144;;;;-1:-1:-1;;;;;363:55:226;;;345:74;;333:2;318:18;2899:144:210;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:226;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:226;7553:124:210;;;;;;;;;;-1:-1:-1;7553:124:210;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;3819:837:210:-;;;;;;;;;;-1:-1:-1;3819:837:210;;;;;:::i;:::-;;:::i;:::-;;;4284:25:226;;;4272:2;4257:18;3819:837:210;4138:177:226;1915:129:210;;;;;;;;;;-1:-1:-1;1915:129:210;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5601:483::-;;;;;;;;;;-1:-1:-1;5601:483:210;;;;;:::i;:::-;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1779:130:210;;;;;;;;;;-1:-1:-1;1779:130:210;;;;;:::i;:::-;;:::i;3049:413::-;;;;;;;;;;-1:-1:-1;3049:413:210;;;;;:::i;:::-;;:::i;4662:545::-;;;;;;:::i;:::-;;:::i;:::-;;2386:266;;;;;;;;;;-1:-1:-1;2386:266:210;;;;;:::i;:::-;;:::i;6090:219::-;;;;;;;;;;-1:-1:-1;6090:219:210;;;;;:::i;:::-;;:::i;5213:382::-;;;;;;;;;;-1:-1:-1;5213:382:210;;;;;:::i;:::-;;:::i;7155:125::-;;;;;;;;;;-1:-1:-1;7155:125:210;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7417:130:210:-;;;;;;;;;;-1:-1:-1;7417:130:210;;;;;:::i;:::-;;:::i;2658:143::-;;;;;;;;;;-1:-1:-1;2658:143:210;;;;;:::i;:::-;2756:37;;;2658:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7553:124:210:-;7613:16;;:::i;:::-;7648:22;7658:11;7648:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;3819:837:210:-;3929:19;3964:24;3991:28;:26;:28::i;:::-;3964:55;-1:-1:-1;4056:16:210;4037:35;;4029:83;;;;-1:-1:-1;;;4029:83:210;;5935:2:226;4029:83:210;;;5917:21:226;5974:2;5954:18;;;5947:30;6013:34;5993:18;;;5986:62;6084:5;6064:18;;;6057:33;6107:19;;4029:83:210;;;;;;;;;4129:8;:6;:8::i;:::-;-1:-1:-1;;;;;4122:21:210;;4157:37;4173:20;4157:15;:37::i;:::-;4196:65;;-1:-1:-1;;;;;6329:55:226;;4196:65:210;;;6311:74:226;6401:18;;;6394:34;;;6284:18;;4196:65:210;;;-1:-1:-1;;4196:65:210;;;;;;;;;;;;;;;;;;;;4122:149;;4196:65;4122:149;;;;;;;;;4196:65;4122:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4122:149:210;;;;;;;;;;;;:::i;:::-;;4295:35;4313:16;4295:17;:35::i;:::-;4281:49;;4340:41;4360:11;4373:7;4340:19;:41::i;:::-;4391:52;4413:11;4426:16;4391:21;:52::i;:::-;4462:25;4482:4;4462:19;:25::i;:::-;4461:26;4453:58;;;;-1:-1:-1;;;4453:58:210;;8342:2:226;4453:58:210;;;8324:21:226;8381:2;8361:18;;;8354:30;8420:21;8400:18;;;8393:49;8459:18;;4453:58:210;8140:343:226;4453:58:210;4521:31;4541:4;4547;4521:19;:31::i;:::-;4562:37;4581:11;4594:4;4562:18;:37::i;:::-;4609:40;4622:16;4640:8;4609:12;:40::i;:::-;3954:702;3819:837;;;;;:::o;1915:129::-;1975:14;2010:27;2025:11;2010:14;:27::i;5601:483::-;5667:20;5717:14;5728:2;5717:10;:14::i;:::-;5703:10;:28;5699:379;;-1:-1:-1;5762:2:210;5601:483;;;:::o;5699:379::-;5800:9;5795:273;5815:2;5811:1;:6;5795:273;;;5859:10;5842:13;5853:1;5842:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;5893:10:210;5873:17;5884:5;:1;5888;5884:5;:::i;:::-;5873:10;:17::i;:::-;:30;5842:61;5838:155;;;5942:5;:1;5946;5942:5;:::i;:::-;5927:20;;5969:5;;5838:155;6032:3;;;;:::i;:::-;;;;5795:273;;;;5601:483;;;:::o;1779:130::-;1838:13;1871:31;1890:11;1871:18;:31::i;3049:413::-;3119:4;3135:20;3158:28;3174:11;3032:2;3008:26;;2899:144;3158:28;3135:51;-1:-1:-1;2756:37:210;;;3196:15;3285:17;:15;:17::i;:::-;-1:-1:-1;;;;;3285:25:210;;3311:7;3285:34;;;;;;;;;;;;;4284:25:226;;4272:2;4257:18;;4138:177;3285:34:210;;;;;;;;;;;;;;;;;;;-1:-1:-1;3285:34:210;;;;;;;;-1:-1:-1;;3285:34:210;;;;;;;;;;;;:::i;:::-;;;3281:135;;;3362:17;:15;:17::i;:::-;-1:-1:-1;;;;;3362:25:210;;3388:7;3362:34;;;;;;;;;;;;;4284:25:226;;4272:2;4257:18;;4138:177;3362:34:210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3352:44;;3320:87;3281:135;3443:12;-1:-1:-1;;;;;3432:23:210;:7;-1:-1:-1;;;;;3432:23:210;;3425:30;;;;;3049:413;;;:::o;4662:545::-;4777:33;4798:11;4777:20;:33::i;:::-;4776:34;4768:90;;;;-1:-1:-1;;;4768:90:210;;9465:2:226;4768:90:210;;;9447:21:226;9504:2;9484:18;;;9477:30;9543:34;9523:18;;;9516:62;9614:13;9594:18;;;9587:41;9645:19;;4768:90:210;9263:407:226;4768:90:210;4876:21;4885:11;4876:8;:21::i;:::-;4868:53;;;;-1:-1:-1;;;4868:53:210;;9877:2:226;4868:53:210;;;9859:21:226;9916:2;9896:18;;;9889:30;9955:21;9935:18;;;9928:49;9994:18;;4868:53:210;9675:343:226;4868:53:210;4931:26;4999:34;5014:11;5027:5;4999:14;:34::i;:::-;5090:110;5143:16;5161:11;5185;5174:23;;;;;;4284:25:226;;4272:2;4257:18;;4138:177;5174:23:210;;;;-1:-1:-1;;5174:23:210;;;;;;;;;;5108:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5108:91:210;;;;;;;;;;;;;;;;;;;;5090:17;:110::i;:::-;;4758:449;4662:545;;;:::o;2386:266::-;2460:19;2491:20;2514:17;:15;:17::i;:::-;-1:-1:-1;;;;;2514:25:210;;2540:16;2514:43;;;;;;;;;;;;;4284:25:226;;4272:2;4257:18;;4138:177;2514:43:210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2623:2;2589:36;-1:-1:-1;;2589:36:210;:55;;;;;;-1:-1:-1;;2386:266:210:o;6090:219::-;6184:21;6193:11;6184:8;:21::i;:::-;6176:60;;;;-1:-1:-1;;;6176:60:210;;10654:2:226;6176:60:210;;;10636:21:226;10693:2;10673:18;;;10666:30;10732:28;10712:18;;;10705:56;10778:18;;6176:60:210;10452:350:226;6176:60:210;6246:56;2756:37;;;6293:8;6246:12;:56::i;:::-;6090:219;;:::o;5213:382::-;5278:21;5287:11;5278:8;:21::i;:::-;5270:52;;;;-1:-1:-1;;;5270:52:210;;11009:2:226;5270:52:210;;;10991:21:226;11048:2;11028:18;;;11021:30;11087:20;11067:18;;;11060:48;11125:18;;5270:52:210;10807:342:226;5270:52:210;5341:33;5362:11;5341:20;:33::i;:::-;5340:34;5332:72;;;;-1:-1:-1;;;5332:72:210;;11356:2:226;5332:72:210;;;11338:21:226;11395:2;11375:18;;;11368:30;11434:27;11414:18;;;11407:55;11479:18;;5332:72:210;11154:349:226;5332:72:210;5415:31;5425:11;5438:7;5415:9;:31::i;:::-;5494:8;:6;:8::i;:::-;-1:-1:-1;;;;;5487:38:210;;5526:11;5487:51;;;;;;;;;;;;;4284:25:226;;4272:2;4257:18;;4138:177;5487:51:210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5549:39;5570:11;5583:4;5549:20;:39::i;:::-;5213:382;:::o;7155:125::-;7215:7;7241:32;7261:11;7241:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7417:130:210:-;7482:7;7508:32;7528:11;7508:19;:32::i;13270:402:195:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:195;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:195:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;6489:347:210:-;6545:7;6564:25;6592:42;:40;:42::i;:::-;6564:70;;6644:24;6671:50;6699:17;6719:1;6671:19;:50::i;:::-;:54;;6724:1;6671:54;:::i;:::-;6644:81;;6735:61;6755:17;6774:1;6778:16;6735:19;:61::i;1094:186:217:-;1152:10;1177:100;1212:15;1240:9;1257:18;1177:25;:100::i;4730:249:179:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:179;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;11846:2:226;11842:15;;;;-1:-1:-1;;11838:88:226;11826:101;;11952:2;11943:12;;11697:264;4934:25:179;;;;-1:-1:-1;;4934:25:179;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:179;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12095:19:226;;12139:2;12130:12;;11966:182;2594:287:190;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:190;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:190:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:190;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12304:14:226;12297:22;12292:3;12288:32;12276:45;;12346:1;12337:11;;12153:201;4085:25:190;;;;-1:-1:-1;;4085:25:190;;;;;;;;;1198:66;4034:26;:91::i;5941:246:179:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:179;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12095:19:226;;12139:2;12130:12;;11966:182;6315:168:210;6397:79;6418:38;6435:20;6418:16;:38::i;:::-;6458:7;6467:8;6397:20;:79::i;5624:288:195:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:195;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:195;;;;5878:29;;;;;;;;:::i;3297:296:184:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:184;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:184;:64::i;5306:279:179:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:179;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2205:175:210:-;2255:30;2330:42;:40;:42::i;6512:295:179:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:179;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;6982:167:210:-;7044:4;7083:17;:15;:17::i;:::-;:59;;;;;2756:37;;;7083:59;;;4284:25:226;-1:-1:-1;;;;;7083:25:210;;;;;;;4257:18:226;;7083:59:210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7067:75:210;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7067:75:210;;;6982:167;-1:-1:-1;;6982:167:210:o;6279:248:195:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:195;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;12691:3:226;12687:16;;;;12705:66;12683:89;12671:102;;12798:1;12789:11;;12546:260;6477:30:195;;;;-1:-1:-1;;6477:30:195;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13367:98:226;13340:18;;3713:52:107;13223:248:226;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;7286:125:210:-;7361:7;:5;:7::i;:::-;-1:-1:-1;;;;;7361:12:210;;7374:21;7383:11;7374:8;:21::i;:::-;7361:43;;;;;;;;;;-1:-1:-1;;;;;6329:55:226;;;7361:43:210;;;6311:74:226;6401:18;;;6394:34;;;6284:18;;7361:43:210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7286:125;;:::o;7183:249:179:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:179;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12304:14:226;12297:22;12292:3;12288:32;12276:45;;12346:1;12337:11;;12153:201;4071:290:179;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:195:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:195;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:195:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:195;;;;-1:-1:-1;17879:370:195;;;-1:-1:-1;;;;;17879:370:195:o;5147:257:196:-;5258:16;;;5199:22;5258:16;;;;;;;;;5281:13;5297:64;1269:66;5229:45;5345:1;1398:66;5297:26;:64::i;:::-;5375:23;;;5147:257;-1:-1:-1;;;5147:257:196:o;2640:388:181:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:181;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:181;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:181;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:181:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:181;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:181;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12095:19:226;;12139:2;12130:12;;11966:182;4646:27:181;;;;-1:-1:-1;;4646:27:181;;;;;;;;;-1:-1:-1;;;4595:26:181;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;6842:134:210:-;6882:17;6931:37;:35;:37::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:195:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:195;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:195;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:195;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:195;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:195;-1:-1:-1;;16961:760:195:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;4058:247:196;4159:16;;;4105:17;4159:16;;;;;;;;;4182:13;4198:64;1269:66;4130:45;4246:1;1398:66;4198:26;:64::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12095:19:226;;12139:2;12130:12;;11966:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12095:19:226;;12139:2;12130:12;;11966:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;22541:12:226;22580:15;;;45340:92:45;;;22562:34:226;22632:15;;;22612:18;;;22605:43;22684:15;;22664:18;;;22657:43;22504:18;;45340:92:45;22335:371:226;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;22884:25:226;;;22957:12;22945:25;;22925:18;;;22918:53;22857:18;;45581:74:45;22711:266:226;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;24822:79:226;;2092:30:124;;;24810:92:226;2092:30:124;;24918:12:226;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:226;;;4257:18;;7664:67:24;4138:177:226;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:190;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:190;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:226:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:226;;14:180;-1:-1:-1;14:180:226:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:226;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:226;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1419:777;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:226;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:226;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:226;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:226:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:226;3037:15;-1:-1:-1;;3033:88:226;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:226:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:226;3925:18;;3912:32;;-1:-1:-1;3995:2:226;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4320:235::-;4466:2;4451:18;;4478:37;4508:6;4478:37;:::i;:::-;4524:25;;;4320:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:390::-;5416:6;5424;5477:2;5465:9;5456:7;5452:23;5448:32;5445:52;;;5493:1;5490;5483:12;5445:52;5529:9;5516:23;5506:33;;5590:2;5579:9;5575:18;5562:32;5617:18;5609:6;5606:30;5603:50;;;5649:1;5646;5639:12;5603:50;5672;5714:7;5705:6;5694:9;5690:22;5672:50;:::i;:::-;5662:60;;;5338:390;;;;;:::o;6439:250::-;6524:1;6534:113;6548:6;6545:1;6542:13;6534:113;;;6624:11;;;6618:18;6605:11;;;6598:39;6570:2;6563:10;6534:113;;;-1:-1:-1;;6681:1:226;6663:16;;6656:27;6439:250::o;6694:329::-;6735:3;6773:5;6767:12;6800:6;6795:3;6788:19;6816:76;6885:6;6878:4;6873:3;6869:14;6862:4;6855:5;6851:16;6816:76;:::i;:::-;6937:2;6925:15;-1:-1:-1;;6921:88:226;6912:98;;;;7012:4;6908:109;;6694:329;-1:-1:-1;;6694:329:226:o;7028:320::-;7235:6;7224:9;7217:25;7278:2;7273;7262:9;7258:18;7251:30;7198:4;7298:44;7338:2;7327:9;7323:18;7315:6;7298:44;:::i;7353:442::-;7406:5;7459:3;7452:4;7444:6;7440:17;7436:27;7426:55;;7477:1;7474;7467:12;7426:55;7506:6;7500:13;7537:49;7553:32;7582:2;7553:32;:::i;7537:49::-;7611:2;7602:7;7595:19;7657:3;7650:4;7645:2;7637:6;7633:15;7629:26;7626:35;7623:55;;;7674:1;7671;7664:12;7623:55;7687:77;7761:2;7754:4;7745:7;7741:18;7734:4;7726:6;7722:17;7687:77;:::i;7800:335::-;7879:6;7932:2;7920:9;7911:7;7907:23;7903:32;7900:52;;;7948:1;7945;7938:12;7900:52;7981:9;7975:16;8014:18;8006:6;8003:30;8000:50;;;8046:1;8043;8036:12;8000:50;8069:60;8121:7;8112:6;8101:9;8097:22;8069:60;:::i;8488:184::-;-1:-1:-1;;;8537:1:226;8530:88;8637:4;8634:1;8627:15;8661:4;8658:1;8651:15;8677:125;8742:9;;;8763:10;;;8760:36;;;8776:18;;:::i;8807:195::-;8846:3;-1:-1:-1;;8870:5:226;8867:77;8864:103;;8947:18;;:::i;:::-;-1:-1:-1;8994:1:226;8983:13;;8807:195::o;9007:251::-;9077:6;9130:2;9118:9;9109:7;9105:23;9101:32;9098:52;;;9146:1;9143;9136:12;9098:52;9178:9;9172:16;9197:31;9222:5;9197:31;:::i;10023:424::-;10245:6;10234:9;10227:25;10261:37;10291:6;10261:37;:::i;:::-;10334:6;10329:2;10318:9;10314:18;10307:34;10377:2;10372;10361:9;10357:18;10350:30;10208:4;10397:44;10437:2;10426:9;10422:18;10414:6;10397:44;:::i;11508:184::-;-1:-1:-1;;;11557:1:226;11550:88;11657:4;11654:1;11647:15;11681:4;11678:1;11671:15;12811:407;12894:5;12934;12928:12;12976:4;12969:5;12965:16;12959:23;13001:66;13093:2;13089;13085:11;13076:20;;13119:1;13111:6;13108:13;13105:107;;;13199:2;13193;13183:6;13180:1;13176:14;13173:1;13169:22;13165:31;13161:2;13157:40;13153:49;13144:58;;13105:107;;;;12811:407;;;:::o;13476:439::-;13529:3;13567:5;13561:12;13594:6;13589:3;13582:19;13620:4;13649;13644:3;13640:14;13633:21;;13688:4;13681:5;13677:16;13711:1;13721:169;13735:6;13732:1;13729:13;13721:169;;;13796:13;;13784:26;;13830:12;;;;13865:15;;;;13757:1;13750:9;13721:169;;;-1:-1:-1;13906:3:226;;13476:439;-1:-1:-1;;;;;13476:439:226:o;13920:468::-;14220:6;14209:9;14202:25;14263:2;14258;14247:9;14243:18;14236:30;14183:4;14283:56;14335:2;14324:9;14320:18;14312:6;14283:56;:::i;:::-;14275:64;;14375:6;14370:2;14359:9;14355:18;14348:34;13920:468;;;;;;:::o;14393:655::-;14535:6;14543;14551;14604:2;14592:9;14583:7;14579:23;14575:32;14572:52;;;14620:1;14617;14610:12;14572:52;14653:9;14647:16;14682:18;14723:2;14715:6;14712:14;14709:34;;;14739:1;14736;14729:12;14709:34;14762:60;14814:7;14805:6;14794:9;14790:22;14762:60;:::i;:::-;14752:70;;14862:2;14851:9;14847:18;14841:25;14831:35;;14912:2;14901:9;14897:18;14891:25;14875:41;;14941:2;14931:8;14928:16;14925:36;;;14957:1;14954;14947:12;14925:36;;14980:62;15034:7;15023:8;15012:9;15008:24;14980:62;:::i;15053:709::-;15423:6;15412:9;15405:25;15466:3;15461:2;15450:9;15446:18;15439:31;15386:4;15493:57;15545:3;15534:9;15530:19;15522:6;15493:57;:::i;:::-;15598:4;15590:6;15586:17;15581:2;15570:9;15566:18;15559:45;15652:9;15644:6;15640:22;15635:2;15624:9;15620:18;15613:50;15680:32;15705:6;15697;15680:32;:::i;:::-;15672:40;;;15749:6;15743:3;15732:9;15728:19;15721:35;15053:709;;;;;;;;:::o;15767:548::-;16091:6;16080:9;16073:25;16134:3;16129:2;16118:9;16114:18;16107:31;16054:4;16155:57;16207:3;16196:9;16192:19;16184:6;16155:57;:::i;:::-;16260:4;16248:17;;;;16243:2;16228:18;;16221:45;-1:-1:-1;16297:2:226;16282:18;16275:34;16147:65;15767:548;-1:-1:-1;;15767:548:226:o;16320:184::-;16390:6;16443:2;16431:9;16422:7;16418:23;16414:32;16411:52;;;16459:1;16456;16449:12;16411:52;-1:-1:-1;16482:16:226;;16320:184;-1:-1:-1;16320:184:226:o;16509:175::-;16546:3;16590:4;16583:5;16579:16;16619:4;16610:7;16607:17;16604:43;;16627:18;;:::i;:::-;16676:1;16663:15;;16509:175;-1:-1:-1;;16509:175:226:o;16689:604::-;16998:6;16987:9;16980:25;17041:3;17036:2;17025:9;17021:18;17014:31;16961:4;17068:57;17120:3;17109:9;17105:19;17097:6;17068:57;:::i;:::-;17173:4;17165:6;17161:17;17156:2;17145:9;17141:18;17134:45;17227:9;17219:6;17215:22;17210:2;17199:9;17195:18;17188:50;17255:32;17280:6;17272;17255:32;:::i;:::-;17247:40;16689:604;-1:-1:-1;;;;;;;16689:604:226:o;17625:128::-;17692:9;;;17713:11;;;17710:37;;;17727:18;;:::i;17758:168::-;17831:9;;;17862;;17879:15;;;17873:22;;17859:37;17849:71;;17900:18;;:::i;17931:640::-;18182:6;18177:3;18170:19;18152:3;18208:2;18241;18236:3;18232:12;18273:6;18267:13;18338:2;18330:6;18326:15;18359:1;18369:175;18383:6;18380:1;18377:13;18369:175;;;18446:13;;18432:28;;18482:14;;;;18519:15;;;;18405:1;18398:9;18369:175;;;-1:-1:-1;18560:5:226;;17931:640;-1:-1:-1;;;;;;;17931:640:226:o;18576:184::-;-1:-1:-1;;;18625:1:226;18618:88;18725:4;18722:1;18715:15;18749:4;18746:1;18739:15;18765:511;19016:2;19005:9;18998:21;18979:4;19042:56;19094:2;19083:9;19079:18;19071:6;19042:56;:::i;:::-;19146:14;19138:6;19134:27;19129:2;19118:9;19114:18;19107:55;19210:9;19202:6;19198:22;19193:2;19182:9;19178:18;19171:50;19238:32;19263:6;19255;19238:32;:::i;19281:616::-;19592:6;19581:9;19574:25;19635:3;19630:2;19619:9;19615:18;19608:31;19555:4;19662:57;19714:3;19703:9;19699:19;19691:6;19662:57;:::i;:::-;19767:14;19759:6;19755:27;19750:2;19739:9;19735:18;19728:55;19831:9;19823:6;19819:22;19814:2;19803:9;19799:18;19792:50;19859:32;19884:6;19876;19859:32;:::i;19902:925::-;20351:66;20343:6;20339:79;20334:3;20327:92;20309:3;20438;20470:2;20466:1;20461:3;20457:11;20450:23;20502:6;20496:13;20518:74;20585:6;20581:1;20576:3;20572:11;20565:4;20557:6;20553:17;20518:74;:::i;:::-;20620:6;20615:3;20611:16;20601:26;;20655:2;20651:1;20647:2;20643:10;20636:22;20689:6;20683:13;20667:29;;20705:75;20771:8;20767:1;20763:2;20759:10;20752:4;20744:6;20740:17;20705:75;:::i;:::-;20800:17;20819:1;20796:25;;19902:925;-1:-1:-1;;;;;19902:925:226:o;20832:339::-;21009:2;20998:9;20991:21;20972:4;21029:44;21069:2;21058:9;21054:18;21046:6;21029:44;:::i;:::-;21021:52;;-1:-1:-1;;;;;21113:6:226;21109:55;21104:2;21093:9;21089:18;21082:83;20832:339;;;;;:::o;21176:287::-;21305:3;21343:6;21337:13;21359:66;21418:6;21413:3;21406:4;21398:6;21394:17;21359:66;:::i;:::-;21441:16;;;;;21176:287;-1:-1:-1;;21176:287:226:o;21687:464::-;21934:66;21926:6;21922:79;21911:9;21904:98;22038:6;22033:2;22022:9;22018:18;22011:34;22081:2;22076;22065:9;22061:18;22054:30;21885:4;22101:44;22141:2;22130:9;22126:18;22118:6;22101:44;:::i;22156:174::-;22223:12;22255:10;;;22267;;;22251:27;;22290:11;;;22287:37;;;22304:18;;:::i;:::-;22287:37;22156:174;;;;:::o;22982:901::-;23407:6;23396:9;23389:25;23450:3;23445:2;23434:9;23430:18;23423:31;23370:4;23477:57;23529:3;23518:9;23514:19;23506:6;23477:57;:::i;:::-;23582:4;23570:17;;23565:2;23550:18;;23543:45;23607:12;23655:15;;;23650:2;23635:18;;23628:43;23708:15;;23702:3;23687:19;;23680:44;23755:3;23740:19;;23733:35;;;23805:22;;;23799:3;23784:19;;23777:51;23845:32;23809:6;23862;23845:32;:::i;:::-;23837:40;22982:901;-1:-1:-1;;;;;;;;;;22982:901:226:o;23888:788::-;24253:3;24242:9;24235:22;24216:4;24280:57;24332:3;24321:9;24317:19;24309:6;24280:57;:::i;:::-;24385:4;24377:6;24373:17;24368:2;24357:9;24353:18;24346:45;24439:14;24431:6;24427:27;24422:2;24411:9;24407:18;24400:55;24503:12;24495:6;24491:25;24486:2;24475:9;24471:18;24464:53;24554:6;24548:3;24537:9;24533:19;24526:35;24610:9;24602:6;24598:22;24592:3;24581:9;24577:19;24570:51;24638:32;24663:6;24655;24638:32;:::i;:::-;24630:40;23888:788;-1:-1:-1;;;;;;;;;23888:788:226:o;24941:530::-;25126:3;25164:6;25158:13;25180:66;25239:6;25234:3;25227:4;25219:6;25215:17;25180:66;:::i;:::-;25315:2;25311:15;;;;-1:-1:-1;;25307:88:226;25268:16;;;;25293:103;;;25423:2;25412:14;;25405:30;;;;25462:2;25451:14;;24941:530;-1:-1:-1;;24941:530:226:o;25476:359::-;25679:2;25668:9;25661:21;25642:4;25699:44;25739:2;25728:9;25724:18;25716:6;25699:44;:::i;:::-;25774:2;25759:18;;25752:34;;;;-1:-1:-1;25817:2:226;25802:18;25795:34;25691:52;25476:359;-1:-1:-1;25476:359:226:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentLevel(uint256)":"3d0854ae","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xb84abf73925cc09d3b4485612cdf6bdfb41f43e396a7cab318a092155e7c7d61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5675b9f3eac7f784fdc8dc86ab0525f4c7655fffea6bbe3058353ff6e1d9811f\",\"dweb:/ipfs/QmQHeYZixt3FtBNKrGU1xj3vxc5Cv1KeARxWX7XmNdC1Nh\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x3cd69d8fc6f1beb049b8a5e37fb53404cc7517a39230f84a0c6b2e2c764b2c30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://666fd263955c6d05cf07686d79e7763ed13007246cc608712b0065c87d55b9da\",\"dweb:/ipfs/QmfP5vNwnRKzY7ug1BET3ZF4bNHSfiM2LACKnU2kAKnPTV\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be\",\"dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f\",\"dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xccf04cacce39f86742d109d243c1b17b947650a17d482bfee4e682ce43f05881\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c910fa067203cb370c0eb5dce4ce1b3cfff166079963a4261a7db8a4db87fbb7\",\"dweb:/ipfs/QmNiknjWZFzp8t38dwhRfTrvJtoHHnrQzuGQjjSTdyZsxX\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716\",\"dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1b5fdd11b046dba8091312776b0aaf2a015992a2c794a54696e7dda21ddfee62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de52255175f50d737bde1fc543c1f82524f4cd89fef1a29e3a26333e15be7c22\",\"dweb:/ipfs/QmQXWEbqp97QCjofXc42YDi35QG3wRsuctXXhhyzLmnSFo\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x9bfd55b66c63b1f0fee65eed47dc4f15e99488f7f4923f08221dee4dd50d3765\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://253edb2df8f17afc7e8a9822350d36b0acbfa0f21f6eadb89a5fa73ac331a93e\",\"dweb:/ipfs/QmP785ioQpxikiCQhgE6sf2k32EZ1anUYHu9ZCyGxiYKA7\"]},\"src/utils.sol\":{\"keccak256\":\"0xf346e5e55e21a06c5337887dbecefccdd3e3f001c7b461875bb69242e1bda1c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9dae95bc79f3143fdaef0c92d0ffca7521609c12319aee4fb2f994ba548e279c\",\"dweb:/ipfs/QmbbhHcQcnGWVmfnbg9vLdAnjCA38BAJq3omoLEF4o5kbx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xb84abf73925cc09d3b4485612cdf6bdfb41f43e396a7cab318a092155e7c7d61","urls":["bzz-raw://5675b9f3eac7f784fdc8dc86ab0525f4c7655fffea6bbe3058353ff6e1d9811f","dweb:/ipfs/QmQHeYZixt3FtBNKrGU1xj3vxc5Cv1KeARxWX7XmNdC1Nh"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x3cd69d8fc6f1beb049b8a5e37fb53404cc7517a39230f84a0c6b2e2c764b2c30","urls":["bzz-raw://666fd263955c6d05cf07686d79e7763ed13007246cc608712b0065c87d55b9da","dweb:/ipfs/QmfP5vNwnRKzY7ug1BET3ZF4bNHSfiM2LACKnU2kAKnPTV"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff","urls":["bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be","dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383","urls":["bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f","dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xccf04cacce39f86742d109d243c1b17b947650a17d482bfee4e682ce43f05881","urls":["bzz-raw://c910fa067203cb370c0eb5dce4ce1b3cfff166079963a4261a7db8a4db87fbb7","dweb:/ipfs/QmNiknjWZFzp8t38dwhRfTrvJtoHHnrQzuGQjjSTdyZsxX"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e","urls":["bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716","dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1b5fdd11b046dba8091312776b0aaf2a015992a2c794a54696e7dda21ddfee62","urls":["bzz-raw://de52255175f50d737bde1fc543c1f82524f4cd89fef1a29e3a26333e15be7c22","dweb:/ipfs/QmQXWEbqp97QCjofXc42YDi35QG3wRsuctXXhhyzLmnSFo"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0x9bfd55b66c63b1f0fee65eed47dc4f15e99488f7f4923f08221dee4dd50d3765","urls":["bzz-raw://253edb2df8f17afc7e8a9822350d36b0acbfa0f21f6eadb89a5fa73ac331a93e","dweb:/ipfs/QmP785ioQpxikiCQhgE6sf2k32EZ1anUYHu9ZCyGxiYKA7"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf346e5e55e21a06c5337887dbecefccdd3e3f001c7b461875bb69242e1bda1c5","urls":["bzz-raw://9dae95bc79f3143fdaef0c92d0ffca7521609c12319aee4fb2f994ba548e279c","dweb:/ipfs/QmbbhHcQcnGWVmfnbg9vLdAnjCA38BAJq3omoLEF4o5kbx"],"license":"MIT"}},"version":1},"id":210} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061422b806100206000396000f3fe6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc5780633d0854ae116100e15780633d0854ae1461023857806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd578063238015701461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e610148366004613874565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b61018636600461388d565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b6366004613874565b61043f565b6040516101629190613903565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613a3e565b61045f565b604051908152602001610162565b34801561021757600080fd5b5061022b610226366004613874565b6106c1565b6040516101629190613a97565b34801561024457600080fd5b506101fd610253366004613874565b6106cc565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b366004613874565b61074a565b34801561029c57600080fd5b5061018b6102ab366004613874565b610755565b6102c36102be366004613aaa565b610881565b005b3480156102d157600080fd5b506101fd6102e0366004613874565b6109f9565b3480156102f157600080fd5b506102c3610300366004613ae7565b610a8e565b34801561031157600080fd5b506102c3610320366004613874565b610aff565b34801561033157600080fd5b5061014e610340366004613874565b610c31565b34801561035157600080fd5b5061014e610c3c565b34801561036657600080fd5b506101fd610375366004613874565b610c46565b34801561038657600080fd5b506101fd610395366004613874565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b61044761381e565b61043982610c51565b600061045a610d03565b905090565b60008061046a610d35565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610c3c565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610d68565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401613b7e565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106249190810190613bdc565b5061062e816109f9565b915061063a8286610db5565b6106448282610e84565b61064d84610f03565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001610fa8565b6106af8285611061565b6106b981846110e0565b509392505050565b600061043982611113565b60006106d860136111bd565b82106106e657506014919050565b60005b601481101561074457826106fc826111bd565b1115801561071b575082610719610714836001613c27565b6111bd565b115b156107325761072b816001613c27565b9150610744565b8061073c81613c3a565b9150506106e9565b50919050565b600061043982611239565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d6112cb565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190613c54565b60015b15610862576107f06112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190613c54565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a826112d5565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611367565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e8383611423565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401613c71565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a40000000000000000000000000000000000000000000000000000000017905261150c565b5050505050565b600080610a046112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190613c54565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611367565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff8316826110e0565b5050565b610b0881611367565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d816112d5565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b610bbc81674563918244f400006115ba565b610bc4610c3c565b6001600160a01b031663f9d175ed826040518263ffffffff1660e01b8152600401610bf191815260200190565b600060405180830381600087803b158015610c0b57600080fd5b505af1158015610c1f573d6000803e3d6000fd5b50505050610c2e816001611655565b50565b6000610439826116d9565b600061045a611776565b600061043982611780565b610c5961381e565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610c8f57610c8f613c99565b602090810291909101015260008080610ce87f7462554400000000000000000000000053746174730000000000000000000000857ee1080020200120202020200000000000000000000000000000000000000000611812565b925092509250610cf98383836118e2565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610d325750335b90565b600080610d4061195a565b90506000610d4f8260006119c2565b610d5a906001613c27565b905061043982600083611a73565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610deb57610deb613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610e4a919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611bbb565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610eba57610eba613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610e4a91815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610f3c57610f3c613c99565b60209081029190910101526000610f947f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611c70565b9050610fa08160f81c90565b949350505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610fde57610fde613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004e616d6545786973747300000000000060001b8260008560405160200161102c91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611bbb565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061109757611097613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610e4a91815260200190565b610afb61110c7f4368617261637465727300000000000000000000000000000000000000000000611d2d565b8383611d7a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061114c5761114c613c99565b602090810291909101015260006111a57f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611c70565b905060f881901c6002811115610fa057610fa06138cf565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106111f9576111f9613c99565b60209081029190910101526000610fa07f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611c70565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061127257611272613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611c70565b600061045a61195a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061130e5761130e613c99565b60209081029190910101526000610f947f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611c70565b60006113716112cb565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa1580156113de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190613c54565b6001600160a01b0316611413610450565b6001600160a01b03161492915050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061145957611459613c99565b6020908102919091010152610e7f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561149c5761149c6138cf565b6040516020016114d7919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611bbb565b606060008061152261151d85613caf565b611dcc565b91509150816000801b03611588576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052610fa08285611e9c565b6115c2611f77565b6001600160a01b03166340c10f196115d984610c31565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b15801561163957600080fd5b505af115801561164d573d6000803e3d6000fd5b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061168b5761168b613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610e4a91151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061171257611712613c99565b6020908102919091010152600061176b7f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611c70565b60601c949350505050565b600061045a611f81565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106117b9576117b9613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611c70565b6060600060606000611822611f81565b9050306001600160a01b0382160361184b5761183f878787611fc0565b935093509350506118d9565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611894908a908a908a90600401613d3b565b600060405180830381865afa1580156118b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261183f9190810190613d64565b93509350939050565b6118ea61381e565b6118f3846120c8565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611931576119316138cf565b6002811115611942576119426138cf565b90529790975250505093909252509195945050505050565b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611c70565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611a0757611a07613c99565b6020026020010181815250508260001b81600181518110611a2a57611a2a613c99565b60209081029190910101526000611a6a7f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611c70565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611ab457611ab4613c99565b6020026020010181815250508260001b81600181518110611ad757611ad7613c99565b602002602001018181525050611b3d7f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611b2091815260200190565b60408051601f19818403018152919052630100080160dd1b611bbb565b50505050565b6000611b5160706010613c27565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611bc5611f81565b9050306001600160a01b03821603611be957611be48686868686612136565b61164d565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611c369089908990899089908990600401613dc7565b600060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b50505050505050505050565b600080611c7b611f81565b9050306001600160a01b03821603611ca157611c998686868661214b565b915050610fa0565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611cec908990899089908990600401613e0e565b602060405180830381865afa158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c999190613e3d565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611db357611db3613c99565b602002602001018181525050611b3d8482600085612178565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611e2557611e25613c99565b602090810291909101015260008080611e7e7f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000611812565b925092509250611e8f838383612229565b9550955050505050915091565b60606000611ea8611776565b90506001600160a01b0381163003611ee9576000611ed0611ec7610d03565b60008787612241565b9350905080611ee257611ee28361237c565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611f309087908790600401613b7e565b6000604051808303816000875af1158015611f4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fa09190810190613bdc565b600061045a612384565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680611fbb573391505090565b919050565b6060600060606000611fd1856123e2565b9050611fde878783612405565b93506000611feb8661243e565b905080156120bd57611ffd888861247b565b935066ffffffffffffff841667ffffffffffffffff81111561202157612021613979565b6040519080825280601f01601f19166020018201604052801561204b576020820181803683370190505b5092506020830160005b828160ff1610156120ba57600061206d8b8b8461248e565b9050600061208a888460ff166028026038011c64ffffffffff1690565b9050612099826000838761250e565b6120a38185613c27565b9350505080806120b290613e56565b915050612055565b50505b505093509350939050565b6000806000806000806000806120e2896000016020015190565b60408a015160608b0151919950975060f81c6002811115612105576121056138cf565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f2858561214584876125da565b8561260b565b6000611a6a61215a86866128af565b60ff858116601b0360080285901c1661217385876125da565b612905565b6000612182611f81565b9050306001600160a01b038216036121a5576121a085858585612956565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea862906121f0908890889088908890600401613e75565b600060405180830381600087803b15801561220a57600080fd5b505af115801561221e573d6000803e3d6000fd5b505050505050505050565b60008061223585612991565b90969095509350505050565b60006060600080612251866129a6565b90925090506001600160a01b0382166122a2578561226e87612a4a565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190613b7e565b806122b1576122b18689612b78565b861561231d577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061230582612bc4565b905061231a826123158b84613c27565b612c3d565b50505b60006123298760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146123615761235c88888488612cd9565b61236d565b61236d88888488612d51565b90999098509650505050505050565b805160208201fd5b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360017e79070001141414141414000000000000000000000000000000000000000000611c70565b600060086123f260026020613eb4565b6123fc9190613ec7565b9190911c919050565b6060816000036124245750604080516020810190915260008152611bb4565b600061243085856128af565b9050611a6a81600085612db2565b6000600860018061245160026020613eb4565b61245b9190613eb4565b6124659190613eb4565b61246f9190613ec7565b8260ff911c1692915050565b6000611bb461248a8484612dd5565b5490565b600083836040516020016124a3929190613ede565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b821561259557602083106125385760208304840193506020838161253457612534613f1a565b0692505b821561259557602083900360008184101561255b5750600019600884021c612565565b50600019600882021c5b8554600886021b818451168219821617845250818411612586575050611b3d565b50600194909401939182900391015b5b602082106125b75783548152600190930192601f1990910190602001612596565b8115611b3d576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761260160ff601b83900360080287901c1683613c27565b91506001016125df565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361269557837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161268893929190613f30565b60405180910390a2611b3d565b60006126a185856128af565b905060006126ae86612e2b565b905060005b81518110156127835760008282815181106126d0576126d0613c99565b602002602001015190506126fc6004826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561277a576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612747908b908b908b908b90600401613f63565b600060405180830381600087803b15801561276157600080fd5b505af1158015612775573d6000803e3d6000fd5b505050505b506001016126b3565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516127b893929190613f30565b60405180910390a26127d3828565ffffffffffff1685612ed2565b60005b81518110156128a65760008282815181106127f3576127f3613c99565b6020026020010151905061281f6008826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561289d576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061286a908b908b908b908b90600401613f63565b600060405180830381600087803b15801561288457600080fd5b505af1158015612898573d6000803e3d6000fd5b505050505b506001016127d6565b50505050505050565b600082826040516020016128c4929190613ede565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b60006020821061292b5760208204840193506020828161292757612927613f1a565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b6000612962858561247b565b9050600061297f828560ff166028026038011c64ffffffffff1690565b905061164d8686866000858888612ee8565b602081015160408201516000905b9050915091565b604080516001808252818301909252600091829182916020808301908036833701905050905083816000815181106129e0576129e0613c99565b602090810291909101015260008080612a397f7462776f726c6400000000000000000053797374656d73000000000000000000857e15020014010000000000000000000000000000000000000000000000000000611fc0565b925092509250611e8f838383613322565b606081601081901b6000612a5d8361332e565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ab857612ab37fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613345565b612aef565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612b1657612b1183613345565b612b4d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612b5f93929190613f9c565b6040516020818303038152906040529350505050919050565b612b8282826133cb565b610afb57612b8f82612a4a565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e992919061402a565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612bfd57612bfd613c99565b60209081029190910101526000610fa07f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b61214b565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612c7357612c73613c99565b602002602001018181525050610e7f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612cbc91815260200190565b60408051601f19818403018152919052630100080160dd1b612136565b60006060836001600160a01b03166000612cf4858989613429565b604051612d019190614055565b60006040518083038185875af1925050503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b606091505b509097909650945050505050565b60006060836001600160a01b0316612d6a848888613429565b604051612d779190614055565b600060405180830381855af49150503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b60405160208101601f19603f84840101166040528282526106b98585858461250e565b60008282604051602001612dea929190613ede565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612e6557612e65613c99565b60209081029190910101526000612e9d7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613458565b9050610fa0612eaf8260008451613492565b613520565b60008160ff1682612ec58560581c90565b1660ff1614905092915050565b610e7f83838351612ee38560200190565b613531565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612fa8577f74620000000000000000000000000000000000000000000000000000000000008788604051602001612f6691815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e9939291600401614071565b6000612fc3828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683612fdc9190613eb4565b612fe69190613c27565b9050808214158015613008575081612ffe86886140b2565b64ffffffffff1614155b15613058576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff1611156130a9576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b60006130b68489846135f0565b905060006130c38b612e2b565b905060005b815181101561318e5760008282815181106130e5576130e5613c99565b602002602001015190506131116010826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561318557606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161315297969594939291906140d7565b600060405180830381600087803b15801561316c57600080fd5b505af1158015613180573d6000803e3d6000fd5b505050505b506001016130c8565b5064ffffffffff881660005b8a60ff168160ff1610156131cd576131c1878260ff166028026038011c64ffffffffff1690565b9091019060010161319a565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161320896959493929190614135565b60405180910390a2508284146132295760006132248c8c612dd5565b839055505b60006132368c8c8c61248e565b905061324a818a64ffffffffff1689612ed2565b5060005b815181101561331457600082828151811061326b5761326b613c99565b602002602001015190506132976020826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561330b57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016132d897969594939291906140d7565b600060405180830381600087803b1580156132f257600080fd5b505af1158015613306573d6000803e3d6000fd5b505050505b5060010161324e565b505050505050505050505050565b600080612235856136be565b600061333c60706010613c27565b9190911b919050565b606060005b601081101561339b576fffffffffffffffffffffffffffffffff198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561339b5760010161334a565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610fa0565b60006134197f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836136da565b80611bb45750611bb483836136da565b606083838360405160200161344093929190614191565b60405160208183030381529060405290509392505050565b6060610fa061346885858561248e565b600061348d85613478898961247b565b9060ff166028026038011c64ffffffffff1690565b612db2565b6000818311806134a25750835182115b156134df578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e9939291906141d0565b602084016134ed8482613c27565b905060006134fb8585613eb4565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611bb483601560006137a3565b82156135ab576020831061355b5760208304840193506020838161355757613557613f1a565b0692505b82156135ab5760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161359c575050611b3d565b50600194909401939182900391015b5b602082106135cd5780518455600190930192601f19909101906020016135ac565b8115611b3d576000600019600884021c8554835182191691161785555050505050565b600064ffffffffff821115613634576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613666578085038201915061366e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c61299f565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061371357613713613c99565b602002602001018181525050826001600160a01b031660001b8160018151811061373f5761373f613c99565b602090810291909101015260006137977f7462776f726c640000000000000000005265736f75726365416363657373000083837e0101000100000000000000000000000000000000000000000000000000000061214b565b9050611a6a8160f81c90565b606060006137b18560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816137d7576137d7613f1a565b04905060405193506020840160208202810160405281855260005b82811015613812578451871c8252938701936020909101906001016137f2565b50505050509392505050565b60405180610100016040528060008152602001600081526020016000600281111561384b5761384b6138cf565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561388657600080fd5b5035919050565b60006020828403121561389f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bb457600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110610c2e57634e487b7160e01b600052602160045260246000fd5b81518152602080830151908201526040820151610100820190613925816138e5565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114610c2e57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139b8576139b8613979565b604052919050565b600067ffffffffffffffff8211156139da576139da613979565b50601f01601f191660200190565b600082601f8301126139f957600080fd5b8135613a0c613a07826139c0565b61398f565b818152846020838601011115613a2157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613a5357600080fd5b8335613a5e81613964565b925060208401359150604084013567ffffffffffffffff811115613a8157600080fd5b613a8d868287016139e8565b9150509250925092565b60208101613aa4836138e5565b91905290565b600080600060608486031215613abf57600080fd5b8335925060208401359150604084013560038110613adc57600080fd5b809150509250925092565b60008060408385031215613afa57600080fd5b82359150602083013567ffffffffffffffff811115613b1857600080fd5b613b24858286016139e8565b9150509250929050565b60005b83811015613b49578181015183820152602001613b31565b50506000910152565b60008151808452613b6a816020860160208601613b2e565b601f01601f19169290920160200192915050565b828152604060208201526000610fa06040830184613b52565b600082601f830112613ba857600080fd5b8151613bb6613a07826139c0565b818152846020838601011115613bcb57600080fd5b610fa0826020830160208701613b2e565b600060208284031215613bee57600080fd5b815167ffffffffffffffff811115613c0557600080fd5b610fa084828501613b97565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439613c11565b60006000198203613c4d57613c4d613c11565b5060010190565b600060208284031215613c6657600080fd5b8151611bb481613964565b838152613c7d836138e5565b826020820152606060408201526000611a6a6060830184613b52565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf75780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b83811015613d3057815187529582019590820190600101613d14565b509495945050505050565b838152606060208201526000613d546060830185613cff565b9050826040830152949350505050565b600080600060608486031215613d7957600080fd5b835167ffffffffffffffff80821115613d9157600080fd5b613d9d87838801613b97565b9450602086015193506040860151915080821115613dba57600080fd5b50613a8d86828701613b97565b85815260a060208201526000613de060a0830187613cff565b60ff861660408401528281036060840152613dfb8186613b52565b9150508260808301529695505050505050565b848152608060208201526000613e276080830186613cff565b60ff949094166040830152506060015292915050565b600060208284031215613e4f57600080fd5b5051919050565b600060ff821660ff8103613e6c57613e6c613c11565b60010192915050565b848152608060208201526000613e8e6080830186613cff565b60ff851660408401528281036060840152613ea98185613b52565b979650505050505050565b8181038181111561043957610439613c11565b808202811582820484141761043957610439613c11565b8281526000602080830184516020860160005b82811015613f0d57815184529284019290840190600101613ef1565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b606081526000613f436060830186613cff565b65ffffffffffff851660208401528281036040840152610cf98185613b52565b848152608060208201526000613f7c6080830186613cff565b65ffffffffffff851660408401528281036060840152613ea98185613b52565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451613ffd816003860160208901613b2e565b80840190508160038201528451915061401d826004830160208801613b2e565b0160040195945050505050565b60408152600061403d6040830185613b52565b90506001600160a01b03831660208301529392505050565b60008251614067818460208701613b2e565b9190910192915050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611a6a6060830184613b52565b64ffffffffff8181168382160190808211156140d0576140d0613c11565b5092915050565b87815260e0602082015260006140f060e0830189613cff565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526141278185613b52565b9a9950505050505050505050565b60c08152600061414860c0830189613cff565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526141848185613b52565b9998505050505050505050565b600084516141a3818460208901613b2e565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006141e36060830186613b52565b6020830194909452506040015291905056fea2646970667358221220742a2fd45744c41e7d65d12942f110c7afad793e829dbf40f82832658ab5f6a064736f6c63430008180033","sourceMap":"1738:5941:211:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc5780633d0854ae116100e15780633d0854ae1461023857806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd578063238015701461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e610148366004613874565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b61018636600461388d565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b6366004613874565b61043f565b6040516101629190613903565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613a3e565b61045f565b604051908152602001610162565b34801561021757600080fd5b5061022b610226366004613874565b6106c1565b6040516101629190613a97565b34801561024457600080fd5b506101fd610253366004613874565b6106cc565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b366004613874565b61074a565b34801561029c57600080fd5b5061018b6102ab366004613874565b610755565b6102c36102be366004613aaa565b610881565b005b3480156102d157600080fd5b506101fd6102e0366004613874565b6109f9565b3480156102f157600080fd5b506102c3610300366004613ae7565b610a8e565b34801561031157600080fd5b506102c3610320366004613874565b610aff565b34801561033157600080fd5b5061014e610340366004613874565b610c31565b34801561035157600080fd5b5061014e610c3c565b34801561036657600080fd5b506101fd610375366004613874565b610c46565b34801561038657600080fd5b506101fd610395366004613874565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b61044761381e565b61043982610c51565b600061045a610d03565b905090565b60008061046a610d35565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610c3c565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610d68565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401613b7e565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106249190810190613bdc565b5061062e816109f9565b915061063a8286610db5565b6106448282610e84565b61064d84610f03565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001610fa8565b6106af8285611061565b6106b981846110e0565b509392505050565b600061043982611113565b60006106d860136111bd565b82106106e657506014919050565b60005b601481101561074457826106fc826111bd565b1115801561071b575082610719610714836001613c27565b6111bd565b115b156107325761072b816001613c27565b9150610744565b8061073c81613c3a565b9150506106e9565b50919050565b600061043982611239565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d6112cb565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190613c54565b60015b15610862576107f06112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190613c54565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a826112d5565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611367565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e8383611423565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401613c71565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a40000000000000000000000000000000000000000000000000000000017905261150c565b5050505050565b600080610a046112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190613c54565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611367565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff8316826110e0565b5050565b610b0881611367565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d816112d5565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b610bbc81674563918244f400006115ba565b610bc4610c3c565b6001600160a01b031663f9d175ed826040518263ffffffff1660e01b8152600401610bf191815260200190565b600060405180830381600087803b158015610c0b57600080fd5b505af1158015610c1f573d6000803e3d6000fd5b50505050610c2e816001611655565b50565b6000610439826116d9565b600061045a611776565b600061043982611780565b610c5961381e565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610c8f57610c8f613c99565b602090810291909101015260008080610ce87f7462554400000000000000000000000053746174730000000000000000000000857ee1080020200120202020200000000000000000000000000000000000000000611812565b925092509250610cf98383836118e2565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610d325750335b90565b600080610d4061195a565b90506000610d4f8260006119c2565b610d5a906001613c27565b905061043982600083611a73565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610deb57610deb613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610e4a919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611bbb565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610eba57610eba613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610e4a91815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610f3c57610f3c613c99565b60209081029190910101526000610f947f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611c70565b9050610fa08160f81c90565b949350505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610fde57610fde613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004e616d6545786973747300000000000060001b8260008560405160200161102c91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611bbb565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061109757611097613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610e4a91815260200190565b610afb61110c7f4368617261637465727300000000000000000000000000000000000000000000611d2d565b8383611d7a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061114c5761114c613c99565b602090810291909101015260006111a57f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611c70565b905060f881901c6002811115610fa057610fa06138cf565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106111f9576111f9613c99565b60209081029190910101526000610fa07f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611c70565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061127257611272613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611c70565b600061045a61195a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061130e5761130e613c99565b60209081029190910101526000610f947f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611c70565b60006113716112cb565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa1580156113de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190613c54565b6001600160a01b0316611413610450565b6001600160a01b03161492915050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061145957611459613c99565b6020908102919091010152610e7f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561149c5761149c6138cf565b6040516020016114d7919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611bbb565b606060008061152261151d85613caf565b611dcc565b91509150816000801b03611588576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052610fa08285611e9c565b6115c2611f77565b6001600160a01b03166340c10f196115d984610c31565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b15801561163957600080fd5b505af115801561164d573d6000803e3d6000fd5b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061168b5761168b613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610e4a91151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061171257611712613c99565b6020908102919091010152600061176b7f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611c70565b60601c949350505050565b600061045a611f81565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106117b9576117b9613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611c70565b6060600060606000611822611f81565b9050306001600160a01b0382160361184b5761183f878787611fc0565b935093509350506118d9565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611894908a908a908a90600401613d3b565b600060405180830381865afa1580156118b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261183f9190810190613d64565b93509350939050565b6118ea61381e565b6118f3846120c8565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611931576119316138cf565b6002811115611942576119426138cf565b90529790975250505093909252509195945050505050565b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611c70565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611a0757611a07613c99565b6020026020010181815250508260001b81600181518110611a2a57611a2a613c99565b60209081029190910101526000611a6a7f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611c70565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611ab457611ab4613c99565b6020026020010181815250508260001b81600181518110611ad757611ad7613c99565b602002602001018181525050611b3d7f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611b2091815260200190565b60408051601f19818403018152919052630100080160dd1b611bbb565b50505050565b6000611b5160706010613c27565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611bc5611f81565b9050306001600160a01b03821603611be957611be48686868686612136565b61164d565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611c369089908990899089908990600401613dc7565b600060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b50505050505050505050565b600080611c7b611f81565b9050306001600160a01b03821603611ca157611c998686868661214b565b915050610fa0565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611cec908990899089908990600401613e0e565b602060405180830381865afa158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c999190613e3d565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611db357611db3613c99565b602002602001018181525050611b3d8482600085612178565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611e2557611e25613c99565b602090810291909101015260008080611e7e7f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000611812565b925092509250611e8f838383612229565b9550955050505050915091565b60606000611ea8611776565b90506001600160a01b0381163003611ee9576000611ed0611ec7610d03565b60008787612241565b9350905080611ee257611ee28361237c565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611f309087908790600401613b7e565b6000604051808303816000875af1158015611f4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fa09190810190613bdc565b600061045a612384565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680611fbb573391505090565b919050565b6060600060606000611fd1856123e2565b9050611fde878783612405565b93506000611feb8661243e565b905080156120bd57611ffd888861247b565b935066ffffffffffffff841667ffffffffffffffff81111561202157612021613979565b6040519080825280601f01601f19166020018201604052801561204b576020820181803683370190505b5092506020830160005b828160ff1610156120ba57600061206d8b8b8461248e565b9050600061208a888460ff166028026038011c64ffffffffff1690565b9050612099826000838761250e565b6120a38185613c27565b9350505080806120b290613e56565b915050612055565b50505b505093509350939050565b6000806000806000806000806120e2896000016020015190565b60408a015160608b0151919950975060f81c6002811115612105576121056138cf565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f2858561214584876125da565b8561260b565b6000611a6a61215a86866128af565b60ff858116601b0360080285901c1661217385876125da565b612905565b6000612182611f81565b9050306001600160a01b038216036121a5576121a085858585612956565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea862906121f0908890889088908890600401613e75565b600060405180830381600087803b15801561220a57600080fd5b505af115801561221e573d6000803e3d6000fd5b505050505050505050565b60008061223585612991565b90969095509350505050565b60006060600080612251866129a6565b90925090506001600160a01b0382166122a2578561226e87612a4a565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190613b7e565b806122b1576122b18689612b78565b861561231d577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061230582612bc4565b905061231a826123158b84613c27565b612c3d565b50505b60006123298760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146123615761235c88888488612cd9565b61236d565b61236d88888488612d51565b90999098509650505050505050565b805160208201fd5b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360017e79070001141414141414000000000000000000000000000000000000000000611c70565b600060086123f260026020613eb4565b6123fc9190613ec7565b9190911c919050565b6060816000036124245750604080516020810190915260008152611bb4565b600061243085856128af565b9050611a6a81600085612db2565b6000600860018061245160026020613eb4565b61245b9190613eb4565b6124659190613eb4565b61246f9190613ec7565b8260ff911c1692915050565b6000611bb461248a8484612dd5565b5490565b600083836040516020016124a3929190613ede565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b821561259557602083106125385760208304840193506020838161253457612534613f1a565b0692505b821561259557602083900360008184101561255b5750600019600884021c612565565b50600019600882021c5b8554600886021b818451168219821617845250818411612586575050611b3d565b50600194909401939182900391015b5b602082106125b75783548152600190930192601f1990910190602001612596565b8115611b3d576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761260160ff601b83900360080287901c1683613c27565b91506001016125df565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361269557837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161268893929190613f30565b60405180910390a2611b3d565b60006126a185856128af565b905060006126ae86612e2b565b905060005b81518110156127835760008282815181106126d0576126d0613c99565b602002602001015190506126fc6004826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561277a576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612747908b908b908b908b90600401613f63565b600060405180830381600087803b15801561276157600080fd5b505af1158015612775573d6000803e3d6000fd5b505050505b506001016126b3565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516127b893929190613f30565b60405180910390a26127d3828565ffffffffffff1685612ed2565b60005b81518110156128a65760008282815181106127f3576127f3613c99565b6020026020010151905061281f6008826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561289d576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061286a908b908b908b908b90600401613f63565b600060405180830381600087803b15801561288457600080fd5b505af1158015612898573d6000803e3d6000fd5b505050505b506001016127d6565b50505050505050565b600082826040516020016128c4929190613ede565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b60006020821061292b5760208204840193506020828161292757612927613f1a565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b6000612962858561247b565b9050600061297f828560ff166028026038011c64ffffffffff1690565b905061164d8686866000858888612ee8565b602081015160408201516000905b9050915091565b604080516001808252818301909252600091829182916020808301908036833701905050905083816000815181106129e0576129e0613c99565b602090810291909101015260008080612a397f7462776f726c6400000000000000000053797374656d73000000000000000000857e15020014010000000000000000000000000000000000000000000000000000611fc0565b925092509250611e8f838383613322565b606081601081901b6000612a5d8361332e565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ab857612ab37fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613345565b612aef565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612b1657612b1183613345565b612b4d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612b5f93929190613f9c565b6040516020818303038152906040529350505050919050565b612b8282826133cb565b610afb57612b8f82612a4a565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e992919061402a565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612bfd57612bfd613c99565b60209081029190910101526000610fa07f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b61214b565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612c7357612c73613c99565b602002602001018181525050610e7f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612cbc91815260200190565b60408051601f19818403018152919052630100080160dd1b612136565b60006060836001600160a01b03166000612cf4858989613429565b604051612d019190614055565b60006040518083038185875af1925050503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b606091505b509097909650945050505050565b60006060836001600160a01b0316612d6a848888613429565b604051612d779190614055565b600060405180830381855af49150503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b60405160208101601f19603f84840101166040528282526106b98585858461250e565b60008282604051602001612dea929190613ede565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612e6557612e65613c99565b60209081029190910101526000612e9d7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613458565b9050610fa0612eaf8260008451613492565b613520565b60008160ff1682612ec58560581c90565b1660ff1614905092915050565b610e7f83838351612ee38560200190565b613531565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612fa8577f74620000000000000000000000000000000000000000000000000000000000008788604051602001612f6691815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e9939291600401614071565b6000612fc3828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683612fdc9190613eb4565b612fe69190613c27565b9050808214158015613008575081612ffe86886140b2565b64ffffffffff1614155b15613058576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff1611156130a9576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b60006130b68489846135f0565b905060006130c38b612e2b565b905060005b815181101561318e5760008282815181106130e5576130e5613c99565b602002602001015190506131116010826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561318557606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161315297969594939291906140d7565b600060405180830381600087803b15801561316c57600080fd5b505af1158015613180573d6000803e3d6000fd5b505050505b506001016130c8565b5064ffffffffff881660005b8a60ff168160ff1610156131cd576131c1878260ff166028026038011c64ffffffffff1690565b9091019060010161319a565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161320896959493929190614135565b60405180910390a2508284146132295760006132248c8c612dd5565b839055505b60006132368c8c8c61248e565b905061324a818a64ffffffffff1689612ed2565b5060005b815181101561331457600082828151811061326b5761326b613c99565b602002602001015190506132976020826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561330b57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016132d897969594939291906140d7565b600060405180830381600087803b1580156132f257600080fd5b505af1158015613306573d6000803e3d6000fd5b505050505b5060010161324e565b505050505050505050505050565b600080612235856136be565b600061333c60706010613c27565b9190911b919050565b606060005b601081101561339b576fffffffffffffffffffffffffffffffff198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561339b5760010161334a565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610fa0565b60006134197f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836136da565b80611bb45750611bb483836136da565b606083838360405160200161344093929190614191565b60405160208183030381529060405290509392505050565b6060610fa061346885858561248e565b600061348d85613478898961247b565b9060ff166028026038011c64ffffffffff1690565b612db2565b6000818311806134a25750835182115b156134df578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e9939291906141d0565b602084016134ed8482613c27565b905060006134fb8585613eb4565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611bb483601560006137a3565b82156135ab576020831061355b5760208304840193506020838161355757613557613f1a565b0692505b82156135ab5760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161359c575050611b3d565b50600194909401939182900391015b5b602082106135cd5780518455600190930192601f19909101906020016135ac565b8115611b3d576000600019600884021c8554835182191691161785555050505050565b600064ffffffffff821115613634576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613666578085038201915061366e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c61299f565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061371357613713613c99565b602002602001018181525050826001600160a01b031660001b8160018151811061373f5761373f613c99565b602090810291909101015260006137977f7462776f726c640000000000000000005265736f75726365416363657373000083837e0101000100000000000000000000000000000000000000000000000000000061214b565b9050611a6a8160f81c90565b606060006137b18560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816137d7576137d7613f1a565b04905060405193506020840160208202810160405281855260005b82811015613812578451871c8252938701936020909101906001016137f2565b50505050509392505050565b60405180610100016040528060008152602001600081526020016000600281111561384b5761384b6138cf565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561388657600080fd5b5035919050565b60006020828403121561389f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bb457600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110610c2e57634e487b7160e01b600052602160045260246000fd5b81518152602080830151908201526040820151610100820190613925816138e5565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114610c2e57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139b8576139b8613979565b604052919050565b600067ffffffffffffffff8211156139da576139da613979565b50601f01601f191660200190565b600082601f8301126139f957600080fd5b8135613a0c613a07826139c0565b61398f565b818152846020838601011115613a2157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613a5357600080fd5b8335613a5e81613964565b925060208401359150604084013567ffffffffffffffff811115613a8157600080fd5b613a8d868287016139e8565b9150509250925092565b60208101613aa4836138e5565b91905290565b600080600060608486031215613abf57600080fd5b8335925060208401359150604084013560038110613adc57600080fd5b809150509250925092565b60008060408385031215613afa57600080fd5b82359150602083013567ffffffffffffffff811115613b1857600080fd5b613b24858286016139e8565b9150509250929050565b60005b83811015613b49578181015183820152602001613b31565b50506000910152565b60008151808452613b6a816020860160208601613b2e565b601f01601f19169290920160200192915050565b828152604060208201526000610fa06040830184613b52565b600082601f830112613ba857600080fd5b8151613bb6613a07826139c0565b818152846020838601011115613bcb57600080fd5b610fa0826020830160208701613b2e565b600060208284031215613bee57600080fd5b815167ffffffffffffffff811115613c0557600080fd5b610fa084828501613b97565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439613c11565b60006000198203613c4d57613c4d613c11565b5060010190565b600060208284031215613c6657600080fd5b8151611bb481613964565b838152613c7d836138e5565b826020820152606060408201526000611a6a6060830184613b52565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf75780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b83811015613d3057815187529582019590820190600101613d14565b509495945050505050565b838152606060208201526000613d546060830185613cff565b9050826040830152949350505050565b600080600060608486031215613d7957600080fd5b835167ffffffffffffffff80821115613d9157600080fd5b613d9d87838801613b97565b9450602086015193506040860151915080821115613dba57600080fd5b50613a8d86828701613b97565b85815260a060208201526000613de060a0830187613cff565b60ff861660408401528281036060840152613dfb8186613b52565b9150508260808301529695505050505050565b848152608060208201526000613e276080830186613cff565b60ff949094166040830152506060015292915050565b600060208284031215613e4f57600080fd5b5051919050565b600060ff821660ff8103613e6c57613e6c613c11565b60010192915050565b848152608060208201526000613e8e6080830186613cff565b60ff851660408401528281036060840152613ea98185613b52565b979650505050505050565b8181038181111561043957610439613c11565b808202811582820484141761043957610439613c11565b8281526000602080830184516020860160005b82811015613f0d57815184529284019290840190600101613ef1565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b606081526000613f436060830186613cff565b65ffffffffffff851660208401528281036040840152610cf98185613b52565b848152608060208201526000613f7c6080830186613cff565b65ffffffffffff851660408401528281036060840152613ea98185613b52565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451613ffd816003860160208901613b2e565b80840190508160038201528451915061401d826004830160208801613b2e565b0160040195945050505050565b60408152600061403d6040830185613b52565b90506001600160a01b03831660208301529392505050565b60008251614067818460208701613b2e565b9190910192915050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611a6a6060830184613b52565b64ffffffffff8181168382160190808211156140d0576140d0613c11565b5092915050565b87815260e0602082015260006140f060e0830189613cff565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526141278185613b52565b9a9950505050505050505050565b60c08152600061414860c0830189613cff565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526141848185613b52565b9998505050505050505050565b600084516141a3818460208901613b2e565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006141e36060830186613b52565b6020830194909452506040015291905056fea2646970667358221220742a2fd45744c41e7d65d12942f110c7afad793e829dbf40f82832658ab5f6a064736f6c63430008180033","sourceMap":"1738:5941:211:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:144;;;;;;;;;;-1:-1:-1;2899:144:211;;;;;:::i;:::-;3032:2;3008:26;;2899:144;;;;-1:-1:-1;;;;;363:55:228;;;345:74;;333:2;318:18;2899:144:211;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:228;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:228;7553:124:211;;;;;;;;;;-1:-1:-1;7553:124:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;3819:837:211:-;;;;;;;;;;-1:-1:-1;3819:837:211;;;;;:::i;:::-;;:::i;:::-;;;4284:25:228;;;4272:2;4257:18;3819:837:211;4138:177:228;1915:129:211;;;;;;;;;;-1:-1:-1;1915:129:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5601:483::-;;;;;;;;;;-1:-1:-1;5601:483:211;;;;;:::i;:::-;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1779:130:211;;;;;;;;;;-1:-1:-1;1779:130:211;;;;;:::i;:::-;;:::i;3049:413::-;;;;;;;;;;-1:-1:-1;3049:413:211;;;;;:::i;:::-;;:::i;4662:545::-;;;;;;:::i;:::-;;:::i;:::-;;2386:266;;;;;;;;;;-1:-1:-1;2386:266:211;;;;;:::i;:::-;;:::i;6090:219::-;;;;;;;;;;-1:-1:-1;6090:219:211;;;;;:::i;:::-;;:::i;5213:382::-;;;;;;;;;;-1:-1:-1;5213:382:211;;;;;:::i;:::-;;:::i;7155:125::-;;;;;;;;;;-1:-1:-1;7155:125:211;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7417:130:211:-;;;;;;;;;;-1:-1:-1;7417:130:211;;;;;:::i;:::-;;:::i;2658:143::-;;;;;;;;;;-1:-1:-1;2658:143:211;;;;;:::i;:::-;2756:37;;;2658:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7553:124:211:-;7613:16;;:::i;:::-;7648:22;7658:11;7648:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;3819:837:211:-;3929:19;3964:24;3991:28;:26;:28::i;:::-;3964:55;-1:-1:-1;4056:16:211;4037:35;;4029:83;;;;-1:-1:-1;;;4029:83:211;;5935:2:228;4029:83:211;;;5917:21:228;5974:2;5954:18;;;5947:30;6013:34;5993:18;;;5986:62;6084:5;6064:18;;;6057:33;6107:19;;4029:83:211;;;;;;;;;4129:8;:6;:8::i;:::-;-1:-1:-1;;;;;4122:21:211;;4157:37;4173:20;4157:15;:37::i;:::-;4196:65;;-1:-1:-1;;;;;6329:55:228;;4196:65:211;;;6311:74:228;6401:18;;;6394:34;;;6284:18;;4196:65:211;;;-1:-1:-1;;4196:65:211;;;;;;;;;;;;;;;;;;;;4122:149;;4196:65;4122:149;;;;;;;;;4196:65;4122:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4122:149:211;;;;;;;;;;;;:::i;:::-;;4295:35;4313:16;4295:17;:35::i;:::-;4281:49;;4340:41;4360:11;4373:7;4340:19;:41::i;:::-;4391:52;4413:11;4426:16;4391:21;:52::i;:::-;4462:25;4482:4;4462:19;:25::i;:::-;4461:26;4453:58;;;;-1:-1:-1;;;4453:58:211;;8342:2:228;4453:58:211;;;8324:21:228;8381:2;8361:18;;;8354:30;8420:21;8400:18;;;8393:49;8459:18;;4453:58:211;8140:343:228;4453:58:211;4521:31;4541:4;4547;4521:19;:31::i;:::-;4562:37;4581:11;4594:4;4562:18;:37::i;:::-;4609:40;4622:16;4640:8;4609:12;:40::i;:::-;3954:702;3819:837;;;;;:::o;1915:129::-;1975:14;2010:27;2025:11;2010:14;:27::i;5601:483::-;5667:20;5717:14;5728:2;5717:10;:14::i;:::-;5703:10;:28;5699:379;;-1:-1:-1;5762:2:211;5601:483;;;:::o;5699:379::-;5800:9;5795:273;5815:2;5811:1;:6;5795:273;;;5859:10;5842:13;5853:1;5842:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;5893:10:211;5873:17;5884:5;:1;5888;5884:5;:::i;:::-;5873:10;:17::i;:::-;:30;5842:61;5838:155;;;5942:5;:1;5946;5942:5;:::i;:::-;5927:20;;5969:5;;5838:155;6032:3;;;;:::i;:::-;;;;5795:273;;;;5601:483;;;:::o;1779:130::-;1838:13;1871:31;1890:11;1871:18;:31::i;3049:413::-;3119:4;3135:20;3158:28;3174:11;3032:2;3008:26;;2899:144;3158:28;3135:51;-1:-1:-1;2756:37:211;;;3196:15;3285:17;:15;:17::i;:::-;-1:-1:-1;;;;;3285:25:211;;3311:7;3285:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3285:34:211;;;;;;;;;;;;;;;;;;;-1:-1:-1;3285:34:211;;;;;;;;-1:-1:-1;;3285:34:211;;;;;;;;;;;;:::i;:::-;;;3281:135;;;3362:17;:15;:17::i;:::-;-1:-1:-1;;;;;3362:25:211;;3388:7;3362:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3362:34:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3352:44;;3320:87;3281:135;3443:12;-1:-1:-1;;;;;3432:23:211;:7;-1:-1:-1;;;;;3432:23:211;;3425:30;;;;;3049:413;;;:::o;4662:545::-;4777:33;4798:11;4777:20;:33::i;:::-;4776:34;4768:90;;;;-1:-1:-1;;;4768:90:211;;9465:2:228;4768:90:211;;;9447:21:228;9504:2;9484:18;;;9477:30;9543:34;9523:18;;;9516:62;9614:13;9594:18;;;9587:41;9645:19;;4768:90:211;9263:407:228;4768:90:211;4876:21;4885:11;4876:8;:21::i;:::-;4868:53;;;;-1:-1:-1;;;4868:53:211;;9877:2:228;4868:53:211;;;9859:21:228;9916:2;9896:18;;;9889:30;9955:21;9935:18;;;9928:49;9994:18;;4868:53:211;9675:343:228;4868:53:211;4931:26;4999:34;5014:11;5027:5;4999:14;:34::i;:::-;5090:110;5143:16;5161:11;5185;5174:23;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5174:23:211;;;;-1:-1:-1;;5174:23:211;;;;;;;;;;5108:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5108:91:211;;;;;;;;;;;;;;;;;;;;5090:17;:110::i;:::-;;4758:449;4662:545;;;:::o;2386:266::-;2460:19;2491:20;2514:17;:15;:17::i;:::-;-1:-1:-1;;;;;2514:25:211;;2540:16;2514:43;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;2514:43:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2623:2;2589:36;-1:-1:-1;;2589:36:211;:55;;;;;;-1:-1:-1;;2386:266:211:o;6090:219::-;6184:21;6193:11;6184:8;:21::i;:::-;6176:60;;;;-1:-1:-1;;;6176:60:211;;10654:2:228;6176:60:211;;;10636:21:228;10693:2;10673:18;;;10666:30;10732:28;10712:18;;;10705:56;10778:18;;6176:60:211;10452:350:228;6176:60:211;6246:56;2756:37;;;6293:8;6246:12;:56::i;:::-;6090:219;;:::o;5213:382::-;5278:21;5287:11;5278:8;:21::i;:::-;5270:52;;;;-1:-1:-1;;;5270:52:211;;11009:2:228;5270:52:211;;;10991:21:228;11048:2;11028:18;;;11021:30;11087:20;11067:18;;;11060:48;11125:18;;5270:52:211;10807:342:228;5270:52:211;5341:33;5362:11;5341:20;:33::i;:::-;5340:34;5332:72;;;;-1:-1:-1;;;5332:72:211;;11356:2:228;5332:72:211;;;11338:21:228;11395:2;11375:18;;;11368:30;11434:27;11414:18;;;11407:55;11479:18;;5332:72:211;11154:349:228;5332:72:211;5415:31;5425:11;5438:7;5415:9;:31::i;:::-;5494:8;:6;:8::i;:::-;-1:-1:-1;;;;;5487:38:211;;5526:11;5487:51;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5487:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5549:39;5570:11;5583:4;5549:20;:39::i;:::-;5213:382;:::o;7155:125::-;7215:7;7241:32;7261:11;7241:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7417:130:211:-;7482:7;7508:32;7528:11;7508:19;:32::i;13270:402:195:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:195;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:195:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;6489:347:211:-;6545:7;6564:25;6592:42;:40;:42::i;:::-;6564:70;;6644:24;6671:50;6699:17;6719:1;6671:19;:50::i;:::-;:54;;6724:1;6671:54;:::i;:::-;6644:81;;6735:61;6755:17;6774:1;6778:16;6735:19;:61::i;1094:186:219:-;1152:10;1177:100;1212:15;1240:9;1257:18;1177:25;:100::i;4730:249:179:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:179;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;11846:2:228;11842:15;;;;-1:-1:-1;;11838:88:228;11826:101;;11952:2;11943:12;;11697:264;4934:25:179;;;;-1:-1:-1;;4934:25:179;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:179;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12095:19:228;;12139:2;12130:12;;11966:182;2594:287:190;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:190;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:190:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:190;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12304:14:228;12297:22;12292:3;12288:32;12276:45;;12346:1;12337:11;;12153:201;4085:25:190;;;;-1:-1:-1;;4085:25:190;;;;;;;;;1198:66;4034:26;:91::i;5941:246:179:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:179;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12095:19:228;;12139:2;12130:12;;11966:182;6315:168:211;6397:79;6418:38;6435:20;6418:16;:38::i;:::-;6458:7;6467:8;6397:20;:79::i;5624:288:195:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:195;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:195;;;;5878:29;;;;;;;;:::i;3297:296:184:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:184;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:184;:64::i;5306:279:179:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:179;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2205:175:211:-;2255:30;2330:42;:40;:42::i;6512:295:179:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:179;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;6982:167:211:-;7044:4;7083:17;:15;:17::i;:::-;:59;;;;;2756:37;;;7083:59;;;4284:25:228;-1:-1:-1;;;;;7083:25:211;;;;;;;4257:18:228;;7083:59:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7067:75:211;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7067:75:211;;;6982:167;-1:-1:-1;;6982:167:211:o;6279:248:195:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:195;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;12691:3:228;12687:16;;;;12705:66;12683:89;12671:102;;12798:1;12789:11;;12546:260;6477:30:195;;;;-1:-1:-1;;6477:30:195;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13367:98:228;13340:18;;3713:52:107;13223:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;7286:125:211:-;7361:7;:5;:7::i;:::-;-1:-1:-1;;;;;7361:12:211;;7374:21;7383:11;7374:8;:21::i;:::-;7361:43;;;;;;;;;;-1:-1:-1;;;;;6329:55:228;;;7361:43:211;;;6311:74:228;6401:18;;;6394:34;;;6284:18;;7361:43:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7286:125;;:::o;7183:249:179:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:179;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12304:14:228;12297:22;12292:3;12288:32;12276:45;;12346:1;12337:11;;12153:201;4071:290:179;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:195:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:195;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:195:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:195;;;;-1:-1:-1;17879:370:195;;;-1:-1:-1;;;;;17879:370:195:o;5147:257:196:-;5258:16;;;5199:22;5258:16;;;;;;;;;5281:13;5297:64;1269:66;5229:45;5345:1;1398:66;5297:26;:64::i;:::-;5375:23;;;5147:257;-1:-1:-1;;;5147:257:196:o;2640:388:181:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:181;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:181;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:181;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:181:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:181;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:181;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12095:19:228;;12139:2;12130:12;;11966:182;4646:27:181;;;;-1:-1:-1;;4646:27:181;;;;;;;;;-1:-1:-1;;;4595:26:181;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;6842:134:211:-;6882:17;6931:37;:35;:37::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:195:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:195;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:195;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:195;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:195;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:195;-1:-1:-1;;16961:760:195:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;4058:247:196;4159:16;;;4105:17;4159:16;;;;;;;;;4182:13;4198:64;1269:66;4130:45;4246:1;1398:66;4198:26;:64::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12095:19:228;;12139:2;12130:12;;11966:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12095:19:228;;12139:2;12130:12;;11966:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;22541:12:228;22580:15;;;45340:92:45;;;22562:34:228;22632:15;;;22612:18;;;22605:43;22684:15;;22664:18;;;22657:43;22504:18;;45340:92:45;22335:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;22884:25:228;;;22957:12;22945:25;;22925:18;;;22918:53;22857:18;;45581:74:45;22711:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;24822:79:228;;2092:30:124;;;24810:92:228;2092:30:124;;24918:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:228;;;4257:18;;7664:67:24;4138:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:190;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:190;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:228:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:228;;14:180;-1:-1:-1;14:180:228:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:228;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:228;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1419:777;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:228;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:228;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:228;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:228:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:228;3037:15;-1:-1:-1;;3033:88:228;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:228:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:228;3925:18;;3912:32;;-1:-1:-1;3995:2:228;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4320:235::-;4466:2;4451:18;;4478:37;4508:6;4478:37;:::i;:::-;4524:25;;;4320:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:390::-;5416:6;5424;5477:2;5465:9;5456:7;5452:23;5448:32;5445:52;;;5493:1;5490;5483:12;5445:52;5529:9;5516:23;5506:33;;5590:2;5579:9;5575:18;5562:32;5617:18;5609:6;5606:30;5603:50;;;5649:1;5646;5639:12;5603:50;5672;5714:7;5705:6;5694:9;5690:22;5672:50;:::i;:::-;5662:60;;;5338:390;;;;;:::o;6439:250::-;6524:1;6534:113;6548:6;6545:1;6542:13;6534:113;;;6624:11;;;6618:18;6605:11;;;6598:39;6570:2;6563:10;6534:113;;;-1:-1:-1;;6681:1:228;6663:16;;6656:27;6439:250::o;6694:329::-;6735:3;6773:5;6767:12;6800:6;6795:3;6788:19;6816:76;6885:6;6878:4;6873:3;6869:14;6862:4;6855:5;6851:16;6816:76;:::i;:::-;6937:2;6925:15;-1:-1:-1;;6921:88:228;6912:98;;;;7012:4;6908:109;;6694:329;-1:-1:-1;;6694:329:228:o;7028:320::-;7235:6;7224:9;7217:25;7278:2;7273;7262:9;7258:18;7251:30;7198:4;7298:44;7338:2;7327:9;7323:18;7315:6;7298:44;:::i;7353:442::-;7406:5;7459:3;7452:4;7444:6;7440:17;7436:27;7426:55;;7477:1;7474;7467:12;7426:55;7506:6;7500:13;7537:49;7553:32;7582:2;7553:32;:::i;7537:49::-;7611:2;7602:7;7595:19;7657:3;7650:4;7645:2;7637:6;7633:15;7629:26;7626:35;7623:55;;;7674:1;7671;7664:12;7623:55;7687:77;7761:2;7754:4;7745:7;7741:18;7734:4;7726:6;7722:17;7687:77;:::i;7800:335::-;7879:6;7932:2;7920:9;7911:7;7907:23;7903:32;7900:52;;;7948:1;7945;7938:12;7900:52;7981:9;7975:16;8014:18;8006:6;8003:30;8000:50;;;8046:1;8043;8036:12;8000:50;8069:60;8121:7;8112:6;8101:9;8097:22;8069:60;:::i;8488:184::-;-1:-1:-1;;;8537:1:228;8530:88;8637:4;8634:1;8627:15;8661:4;8658:1;8651:15;8677:125;8742:9;;;8763:10;;;8760:36;;;8776:18;;:::i;8807:195::-;8846:3;-1:-1:-1;;8870:5:228;8867:77;8864:103;;8947:18;;:::i;:::-;-1:-1:-1;8994:1:228;8983:13;;8807:195::o;9007:251::-;9077:6;9130:2;9118:9;9109:7;9105:23;9101:32;9098:52;;;9146:1;9143;9136:12;9098:52;9178:9;9172:16;9197:31;9222:5;9197:31;:::i;10023:424::-;10245:6;10234:9;10227:25;10261:37;10291:6;10261:37;:::i;:::-;10334:6;10329:2;10318:9;10314:18;10307:34;10377:2;10372;10361:9;10357:18;10350:30;10208:4;10397:44;10437:2;10426:9;10422:18;10414:6;10397:44;:::i;11508:184::-;-1:-1:-1;;;11557:1:228;11550:88;11657:4;11654:1;11647:15;11681:4;11678:1;11671:15;12811:407;12894:5;12934;12928:12;12976:4;12969:5;12965:16;12959:23;13001:66;13093:2;13089;13085:11;13076:20;;13119:1;13111:6;13108:13;13105:107;;;13199:2;13193;13183:6;13180:1;13176:14;13173:1;13169:22;13165:31;13161:2;13157:40;13153:49;13144:58;;13105:107;;;;12811:407;;;:::o;13476:439::-;13529:3;13567:5;13561:12;13594:6;13589:3;13582:19;13620:4;13649;13644:3;13640:14;13633:21;;13688:4;13681:5;13677:16;13711:1;13721:169;13735:6;13732:1;13729:13;13721:169;;;13796:13;;13784:26;;13830:12;;;;13865:15;;;;13757:1;13750:9;13721:169;;;-1:-1:-1;13906:3:228;;13476:439;-1:-1:-1;;;;;13476:439:228:o;13920:468::-;14220:6;14209:9;14202:25;14263:2;14258;14247:9;14243:18;14236:30;14183:4;14283:56;14335:2;14324:9;14320:18;14312:6;14283:56;:::i;:::-;14275:64;;14375:6;14370:2;14359:9;14355:18;14348:34;13920:468;;;;;;:::o;14393:655::-;14535:6;14543;14551;14604:2;14592:9;14583:7;14579:23;14575:32;14572:52;;;14620:1;14617;14610:12;14572:52;14653:9;14647:16;14682:18;14723:2;14715:6;14712:14;14709:34;;;14739:1;14736;14729:12;14709:34;14762:60;14814:7;14805:6;14794:9;14790:22;14762:60;:::i;:::-;14752:70;;14862:2;14851:9;14847:18;14841:25;14831:35;;14912:2;14901:9;14897:18;14891:25;14875:41;;14941:2;14931:8;14928:16;14925:36;;;14957:1;14954;14947:12;14925:36;;14980:62;15034:7;15023:8;15012:9;15008:24;14980:62;:::i;15053:709::-;15423:6;15412:9;15405:25;15466:3;15461:2;15450:9;15446:18;15439:31;15386:4;15493:57;15545:3;15534:9;15530:19;15522:6;15493:57;:::i;:::-;15598:4;15590:6;15586:17;15581:2;15570:9;15566:18;15559:45;15652:9;15644:6;15640:22;15635:2;15624:9;15620:18;15613:50;15680:32;15705:6;15697;15680:32;:::i;:::-;15672:40;;;15749:6;15743:3;15732:9;15728:19;15721:35;15053:709;;;;;;;;:::o;15767:548::-;16091:6;16080:9;16073:25;16134:3;16129:2;16118:9;16114:18;16107:31;16054:4;16155:57;16207:3;16196:9;16192:19;16184:6;16155:57;:::i;:::-;16260:4;16248:17;;;;16243:2;16228:18;;16221:45;-1:-1:-1;16297:2:228;16282:18;16275:34;16147:65;15767:548;-1:-1:-1;;15767:548:228:o;16320:184::-;16390:6;16443:2;16431:9;16422:7;16418:23;16414:32;16411:52;;;16459:1;16456;16449:12;16411:52;-1:-1:-1;16482:16:228;;16320:184;-1:-1:-1;16320:184:228:o;16509:175::-;16546:3;16590:4;16583:5;16579:16;16619:4;16610:7;16607:17;16604:43;;16627:18;;:::i;:::-;16676:1;16663:15;;16509:175;-1:-1:-1;;16509:175:228:o;16689:604::-;16998:6;16987:9;16980:25;17041:3;17036:2;17025:9;17021:18;17014:31;16961:4;17068:57;17120:3;17109:9;17105:19;17097:6;17068:57;:::i;:::-;17173:4;17165:6;17161:17;17156:2;17145:9;17141:18;17134:45;17227:9;17219:6;17215:22;17210:2;17199:9;17195:18;17188:50;17255:32;17280:6;17272;17255:32;:::i;:::-;17247:40;16689:604;-1:-1:-1;;;;;;;16689:604:228:o;17625:128::-;17692:9;;;17713:11;;;17710:37;;;17727:18;;:::i;17758:168::-;17831:9;;;17862;;17879:15;;;17873:22;;17859:37;17849:71;;17900:18;;:::i;17931:640::-;18182:6;18177:3;18170:19;18152:3;18208:2;18241;18236:3;18232:12;18273:6;18267:13;18338:2;18330:6;18326:15;18359:1;18369:175;18383:6;18380:1;18377:13;18369:175;;;18446:13;;18432:28;;18482:14;;;;18519:15;;;;18405:1;18398:9;18369:175;;;-1:-1:-1;18560:5:228;;17931:640;-1:-1:-1;;;;;;;17931:640:228:o;18576:184::-;-1:-1:-1;;;18625:1:228;18618:88;18725:4;18722:1;18715:15;18749:4;18746:1;18739:15;18765:511;19016:2;19005:9;18998:21;18979:4;19042:56;19094:2;19083:9;19079:18;19071:6;19042:56;:::i;:::-;19146:14;19138:6;19134:27;19129:2;19118:9;19114:18;19107:55;19210:9;19202:6;19198:22;19193:2;19182:9;19178:18;19171:50;19238:32;19263:6;19255;19238:32;:::i;19281:616::-;19592:6;19581:9;19574:25;19635:3;19630:2;19619:9;19615:18;19608:31;19555:4;19662:57;19714:3;19703:9;19699:19;19691:6;19662:57;:::i;:::-;19767:14;19759:6;19755:27;19750:2;19739:9;19735:18;19728:55;19831:9;19823:6;19819:22;19814:2;19803:9;19799:18;19792:50;19859:32;19884:6;19876;19859:32;:::i;19902:925::-;20351:66;20343:6;20339:79;20334:3;20327:92;20309:3;20438;20470:2;20466:1;20461:3;20457:11;20450:23;20502:6;20496:13;20518:74;20585:6;20581:1;20576:3;20572:11;20565:4;20557:6;20553:17;20518:74;:::i;:::-;20620:6;20615:3;20611:16;20601:26;;20655:2;20651:1;20647:2;20643:10;20636:22;20689:6;20683:13;20667:29;;20705:75;20771:8;20767:1;20763:2;20759:10;20752:4;20744:6;20740:17;20705:75;:::i;:::-;20800:17;20819:1;20796:25;;19902:925;-1:-1:-1;;;;;19902:925:228:o;20832:339::-;21009:2;20998:9;20991:21;20972:4;21029:44;21069:2;21058:9;21054:18;21046:6;21029:44;:::i;:::-;21021:52;;-1:-1:-1;;;;;21113:6:228;21109:55;21104:2;21093:9;21089:18;21082:83;20832:339;;;;;:::o;21176:287::-;21305:3;21343:6;21337:13;21359:66;21418:6;21413:3;21406:4;21398:6;21394:17;21359:66;:::i;:::-;21441:16;;;;;21176:287;-1:-1:-1;;21176:287:228:o;21687:464::-;21934:66;21926:6;21922:79;21911:9;21904:98;22038:6;22033:2;22022:9;22018:18;22011:34;22081:2;22076;22065:9;22061:18;22054:30;21885:4;22101:44;22141:2;22130:9;22126:18;22118:6;22101:44;:::i;22156:174::-;22223:12;22255:10;;;22267;;;22251:27;;22290:11;;;22287:37;;;22304:18;;:::i;:::-;22287:37;22156:174;;;;:::o;22982:901::-;23407:6;23396:9;23389:25;23450:3;23445:2;23434:9;23430:18;23423:31;23370:4;23477:57;23529:3;23518:9;23514:19;23506:6;23477:57;:::i;:::-;23582:4;23570:17;;23565:2;23550:18;;23543:45;23607:12;23655:15;;;23650:2;23635:18;;23628:43;23708:15;;23702:3;23687:19;;23680:44;23755:3;23740:19;;23733:35;;;23805:22;;;23799:3;23784:19;;23777:51;23845:32;23809:6;23862;23845:32;:::i;:::-;23837:40;22982:901;-1:-1:-1;;;;;;;;;;22982:901:228:o;23888:788::-;24253:3;24242:9;24235:22;24216:4;24280:57;24332:3;24321:9;24317:19;24309:6;24280:57;:::i;:::-;24385:4;24377:6;24373:17;24368:2;24357:9;24353:18;24346:45;24439:14;24431:6;24427:27;24422:2;24411:9;24407:18;24400:55;24503:12;24495:6;24491:25;24486:2;24475:9;24471:18;24464:53;24554:6;24548:3;24537:9;24533:19;24526:35;24610:9;24602:6;24598:22;24592:3;24581:9;24577:19;24570:51;24638:32;24663:6;24655;24638:32;:::i;:::-;24630:40;23888:788;-1:-1:-1;;;;;;;;;23888:788:228:o;24941:530::-;25126:3;25164:6;25158:13;25180:66;25239:6;25234:3;25227:4;25219:6;25215:17;25180:66;:::i;:::-;25315:2;25311:15;;;;-1:-1:-1;;25307:88:228;25268:16;;;;25293:103;;;25423:2;25412:14;;25405:30;;;;25462:2;25451:14;;24941:530;-1:-1:-1;;24941:530:228:o;25476:359::-;25679:2;25668:9;25661:21;25642:4;25699:44;25739:2;25728:9;25724:18;25716:6;25699:44;:::i;:::-;25774:2;25759:18;;25752:34;;;;-1:-1:-1;25817:2:228;25802:18;25795:34;25691:52;25476:359;-1:-1:-1;25476:359:228:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentLevel(uint256)":"3d0854ae","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xb84abf73925cc09d3b4485612cdf6bdfb41f43e396a7cab318a092155e7c7d61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5675b9f3eac7f784fdc8dc86ab0525f4c7655fffea6bbe3058353ff6e1d9811f\",\"dweb:/ipfs/QmQHeYZixt3FtBNKrGU1xj3vxc5Cv1KeARxWX7XmNdC1Nh\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be\",\"dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f\",\"dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716\",\"dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x9bfd55b66c63b1f0fee65eed47dc4f15e99488f7f4923f08221dee4dd50d3765\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://253edb2df8f17afc7e8a9822350d36b0acbfa0f21f6eadb89a5fa73ac331a93e\",\"dweb:/ipfs/QmP785ioQpxikiCQhgE6sf2k32EZ1anUYHu9ZCyGxiYKA7\"]},\"src/utils.sol\":{\"keccak256\":\"0xf346e5e55e21a06c5337887dbecefccdd3e3f001c7b461875bb69242e1bda1c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9dae95bc79f3143fdaef0c92d0ffca7521609c12319aee4fb2f994ba548e279c\",\"dweb:/ipfs/QmbbhHcQcnGWVmfnbg9vLdAnjCA38BAJq3omoLEF4o5kbx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xb84abf73925cc09d3b4485612cdf6bdfb41f43e396a7cab318a092155e7c7d61","urls":["bzz-raw://5675b9f3eac7f784fdc8dc86ab0525f4c7655fffea6bbe3058353ff6e1d9811f","dweb:/ipfs/QmQHeYZixt3FtBNKrGU1xj3vxc5Cv1KeARxWX7XmNdC1Nh"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff","urls":["bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be","dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383","urls":["bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f","dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e","urls":["bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716","dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0x9bfd55b66c63b1f0fee65eed47dc4f15e99488f7f4923f08221dee4dd50d3765","urls":["bzz-raw://253edb2df8f17afc7e8a9822350d36b0acbfa0f21f6eadb89a5fa73ac331a93e","dweb:/ipfs/QmP785ioQpxikiCQhgE6sf2k32EZ1anUYHu9ZCyGxiYKA7"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf346e5e55e21a06c5337887dbecefccdd3e3f001c7b461875bb69242e1bda1c5","urls":["bzz-raw://9dae95bc79f3143fdaef0c92d0ffca7521609c12319aee4fb2f994ba548e279c","dweb:/ipfs/QmbbhHcQcnGWVmfnbg9vLdAnjCA38BAJq3omoLEF4o5kbx"],"license":"MIT"}},"version":1},"id":211} \ No newline at end of file diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json b/packages/contracts/out/IWorld.sol/IWorld.abi.json index 206a0f110..462e30725 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json @@ -200,6 +200,11 @@ "type": "uint256", "internalType": "uint256" }, + { + "name": "dropChance", + "type": "uint256", + "internalType": "uint256" + }, { "name": "stats", "type": "bytes", @@ -234,6 +239,11 @@ "type": "uint256[]", "internalType": "uint256[]" }, + { + "name": "dropChances", + "type": "uint256[]", + "internalType": "uint256[]" + }, { "name": "stats", "type": "bytes[]", @@ -489,6 +499,11 @@ "type": "tuple", "internalType": "struct ArmorStats", "components": [ + { + "name": "agiModifier", + "type": "int256", + "internalType": "int256" + }, { "name": "armorModifier", "type": "uint256", @@ -500,27 +515,22 @@ "internalType": "uint8[]" }, { - "name": "minLevel", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "strModifier", + "name": "hitPointModifier", "type": "int256", "internalType": "int256" }, { - "name": "agiModifier", + "name": "intModifier", "type": "int256", "internalType": "int256" }, { - "name": "intModifier", - "type": "int256", - "internalType": "int256" + "name": "minLevel", + "type": "uint256", + "internalType": "uint256" }, { - "name": "hitPointModifier", + "name": "strModifier", "type": "int256", "internalType": "int256" } diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts index f6f47c3bd..fc3fe695a 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts @@ -200,6 +200,11 @@ declare const abi: [ "type": "uint256", "internalType": "uint256" }, + { + "name": "dropChance", + "type": "uint256", + "internalType": "uint256" + }, { "name": "stats", "type": "bytes", @@ -234,6 +239,11 @@ declare const abi: [ "type": "uint256[]", "internalType": "uint256[]" }, + { + "name": "dropChances", + "type": "uint256[]", + "internalType": "uint256[]" + }, { "name": "stats", "type": "bytes[]", @@ -489,6 +499,11 @@ declare const abi: [ "type": "tuple", "internalType": "struct ArmorStats", "components": [ + { + "name": "agiModifier", + "type": "int256", + "internalType": "int256" + }, { "name": "armorModifier", "type": "uint256", @@ -500,27 +515,22 @@ declare const abi: [ "internalType": "uint8[]" }, { - "name": "minLevel", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "strModifier", + "name": "hitPointModifier", "type": "int256", "internalType": "int256" }, { - "name": "agiModifier", + "name": "intModifier", "type": "int256", "internalType": "int256" }, { - "name": "intModifier", - "type": "int256", - "internalType": "int256" + "name": "minLevel", + "type": "uint256", + "internalType": "uint256" }, { - "name": "hitPointModifier", + "name": "strModifier", "type": "int256", "internalType": "int256" } diff --git a/packages/contracts/out/IWorld.sol/IWorld.json b/packages/contracts/out/IWorld.sol/IWorld.json index 055e30d98..d79adc293 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.json +++ b/packages/contracts/out/IWorld.sol/IWorld.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"UD___calculateMagicAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD___calculatePhysicalAttack","inputs":[{"name":"attackStats","type":"tuple","internalType":"struct PhysicalAttackStats","components":[{"name":"bonusDamage","type":"int256","internalType":"int256"},{"name":"armorPenetration","type":"int256","internalType":"int256"},{"name":"attackModifierBonus","type":"int256","internalType":"int256"},{"name":"critChanceBonus","type":"int256","internalType":"int256"}]},{"name":"attackerId","type":"bytes32","internalType":"bytes32"},{"name":"defenderId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"damage","type":"int256","internalType":"int256"},{"name":"hit","type":"bool","internalType":"bool"},{"name":"crit","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__applyEquipmentBonuses","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"modifiedStats","type":"tuple","internalType":"struct AdjustedCombatStats","components":[{"name":"adjustedStrength","type":"uint256","internalType":"uint256"},{"name":"adjustedAgility","type":"uint256","internalType":"uint256"},{"name":"adjustedIntelligence","type":"uint256","internalType":"uint256"},{"name":"adjustedArmor","type":"uint256","internalType":"uint256"},{"name":"adjustedMaxHp","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canUse","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createAction","inputs":[{"name":"actionType","type":"uint8","internalType":"enum ActionType"},{"name":"actionStats","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItems","inputs":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"characterIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__endTurn","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__executeCombat","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getArmorStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_ArmorStats","type":"tuple","internalType":"struct ArmorStats","components":[{"name":"armorModifier","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"},{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"hitPointModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentItemsCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEncounter","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_encounterData","type":"tuple","internalType":"struct CombatEncounterData","components":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"},{"name":"currentTurn","type":"uint256","internalType":"uint256"},{"name":"maxTurns","type":"uint256","internalType":"uint256"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMobId","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMobPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMulticallContract","inputs":[],"outputs":[{"name":"_multicall","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"UD__getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getSpawnCounter","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct StarterItemsData","components":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"maxDamage","type":"uint256","internalType":"uint256"},{"name":"minDamage","type":"uint256","internalType":"uint256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isItemOwner","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"participants","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidPvE","inputs":[{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isValidPvE","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawnMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD___calculateMagicAttack()":"e0cac377","UD___calculatePhysicalAttack((int256,int256,int256,int256),bytes32,bytes32,uint256,uint256)":"fa760cc5","UD__applyEquipmentBonuses(bytes32)":"54f1f2db","UD__checkRequirements(bytes32,uint256)":"bf4dbebc","UD__createAction(uint8,bytes)":"c3344bd2","UD__createItem(uint8,uint256,bytes,string)":"f28c840e","UD__createItems(uint8[],uint256[],bytes[],string[])":"941acaab","UD__createMatch(uint8,bytes32[],bytes32[])":"3e602b01","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__dropItems(uint256[],uint256[],bytes32[])":"e45cde14","UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"1f357129","UD__enterGame(bytes32)":"b968fa3a","UD__equipItems(bytes32,uint256[])":"2d9ac2be","UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"a0ba1f1e","UD__getArmorStats(uint256)":"e75aa93b","UD__getCharacterToken()":"49d8cf02","UD__getCharacterTokenId(bytes32)":"d97302d0","UD__getClass(bytes32)":"0ae6f9ab","UD__getCurrentItemsCounter()":"4652f280","UD__getCurrentLevel(uint256)":"e83e2af9","UD__getEncounter(bytes32)":"55faf03a","UD__getEntitiesAtPosition(uint16,uint16)":"d0f8a4f5","UD__getEntropy()":"b5c691c7","UD__getExperience(bytes32)":"a8b79e60","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getMob(bytes32)":"5ac36570","UD__getMob(uint256)":"622834d0","UD__getMobId(bytes32)":"53d64640","UD__getMobPosition(bytes32)":"8b3f8277","UD__getMonsterStats(bytes32)":"e6c22e06","UD__getMonsterStats(uint256)":"91b22373","UD__getMulticallContract()":"71ce415d","UD__getName(bytes32)":"e902af7a","UD__getNpcStats(bytes32)":"a17a6b7f","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(bytes32)":"777c2caf","UD__getOwnerAddress(bytes32)":"4f10aabc","UD__getPlayerEntityId(uint256)":"02ee03fa","UD__getPythProvider()":"e24cefd9","UD__getSpawnCounter(bytes32)":"f4e1633b","UD__getStarterItems(uint8)":"b8bfeca1","UD__getStats(bytes32)":"14b13b0e","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isAtPosition(bytes32,uint16,uint16)":"f48a3972","UD__isEquipped(bytes32,uint256)":"7273e39a","UD__isItemOwner(uint256,address)":"b3634118","UD__isParticipant(address,bytes32)":"7868d715","UD__isParticipant(address,bytes32[])":"18853912","UD__isValidCharacterId(bytes32)":"fa1becc4","UD__isValidMob(bytes32)":"bace814a","UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)":"c6d5525b","UD__issueStarterItems(bytes32)":"f9d175ed","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(bytes32,uint16,uint16)":"d1138fa1","UD__rollStats(bytes32,bytes32,uint8)":"18f14781","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(bytes32)":"7e29a6f6","UD__spawnMob(uint256,uint16,uint16)":"15bc4248","UD__unequipItem(bytes32,uint256)":"7a190324","UD__updateTokenUri(bytes32,string)":"ecd73f84","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getMulticallContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_multicall\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x3cd69d8fc6f1beb049b8a5e37fb53404cc7517a39230f84a0c6b2e2c764b2c30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://666fd263955c6d05cf07686d79e7763ed13007246cc608712b0065c87d55b9da\",\"dweb:/ipfs/QmfP5vNwnRKzY7ug1BET3ZF4bNHSfiM2LACKnU2kAKnPTV\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be\",\"dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f\",\"dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xccf04cacce39f86742d109d243c1b17b947650a17d482bfee4e682ce43f05881\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c910fa067203cb370c0eb5dce4ce1b3cfff166079963a4261a7db8a4db87fbb7\",\"dweb:/ipfs/QmNiknjWZFzp8t38dwhRfTrvJtoHHnrQzuGQjjSTdyZsxX\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716\",\"dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1b5fdd11b046dba8091312776b0aaf2a015992a2c794a54696e7dda21ddfee62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de52255175f50d737bde1fc543c1f82524f4cd89fef1a29e3a26333e15be7c22\",\"dweb:/ipfs/QmQXWEbqp97QCjofXc42YDi35QG3wRsuctXXhhyzLmnSFo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD___calculateMagicAttack"},{"inputs":[{"internalType":"struct PhysicalAttackStats","name":"attackStats","type":"tuple","components":[{"internalType":"int256","name":"bonusDamage","type":"int256"},{"internalType":"int256","name":"armorPenetration","type":"int256"},{"internalType":"int256","name":"attackModifierBonus","type":"int256"},{"internalType":"int256","name":"critChanceBonus","type":"int256"}]},{"internalType":"bytes32","name":"attackerId","type":"bytes32"},{"internalType":"bytes32","name":"defenderId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD___calculatePhysicalAttack","outputs":[{"internalType":"int256","name":"damage","type":"int256"},{"internalType":"bool","name":"hit","type":"bool"},{"internalType":"bool","name":"crit","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__applyEquipmentBonuses","outputs":[{"internalType":"struct AdjustedCombatStats","name":"modifiedStats","type":"tuple","components":[{"internalType":"uint256","name":"adjustedStrength","type":"uint256"},{"internalType":"uint256","name":"adjustedAgility","type":"uint256"},{"internalType":"uint256","name":"adjustedIntelligence","type":"uint256"},{"internalType":"uint256","name":"adjustedArmor","type":"uint256"},{"internalType":"uint256","name":"adjustedMaxHp","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"class","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"canUse","type":"bool"}]},{"inputs":[{"internalType":"enum ActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"actionStats","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"UD__createAction","outputs":[{"internalType":"bytes32","name":"actionId","type":"bytes32"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes32[]","name":"characterIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItems"},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"UD__endTurn"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"UD__executeCombat"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getArmorStats","outputs":[{"internalType":"struct ArmorStats","name":"_ArmorStats","type":"tuple","components":[{"internalType":"uint256","name":"armorModifier","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"},{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"int256","name":"hitPointModifier","type":"int256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCurrentItemsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getEncounter","outputs":[{"internalType":"struct CombatEncounterData","name":"_encounterData","type":"tuple","components":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"currentTurn","type":"uint256"},{"internalType":"uint256","name":"maxTurns","type":"uint256"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobPosition","outputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getMulticallContract","outputs":[{"internalType":"address","name":"_multicall","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getSpawnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"view","type":"function","name":"UD__getStarterItems","outputs":[{"internalType":"struct StarterItemsData","name":"data","type":"tuple","components":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"maxDamage","type":"uint256"},{"internalType":"uint256","name":"minDamage","type":"uint256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isItemOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"participants","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidMob","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isValidPvE","outputs":[{"internalType":"bool","name":"_isValidPvE","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawnMob","outputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__updateTokenUri"},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x3cd69d8fc6f1beb049b8a5e37fb53404cc7517a39230f84a0c6b2e2c764b2c30","urls":["bzz-raw://666fd263955c6d05cf07686d79e7763ed13007246cc608712b0065c87d55b9da","dweb:/ipfs/QmfP5vNwnRKzY7ug1BET3ZF4bNHSfiM2LACKnU2kAKnPTV"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff","urls":["bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be","dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383","urls":["bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f","dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xccf04cacce39f86742d109d243c1b17b947650a17d482bfee4e682ce43f05881","urls":["bzz-raw://c910fa067203cb370c0eb5dce4ce1b3cfff166079963a4261a7db8a4db87fbb7","dweb:/ipfs/QmNiknjWZFzp8t38dwhRfTrvJtoHHnrQzuGQjjSTdyZsxX"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e","urls":["bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716","dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1b5fdd11b046dba8091312776b0aaf2a015992a2c794a54696e7dda21ddfee62","urls":["bzz-raw://de52255175f50d737bde1fc543c1f82524f4cd89fef1a29e3a26333e15be7c22","dweb:/ipfs/QmQXWEbqp97QCjofXc42YDi35QG3wRsuctXXhhyzLmnSFo"],"license":"MIT"}},"version":1},"id":205} \ No newline at end of file +{"abi":[{"type":"function","name":"UD___calculateMagicAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD___calculatePhysicalAttack","inputs":[{"name":"attackStats","type":"tuple","internalType":"struct PhysicalAttackStats","components":[{"name":"bonusDamage","type":"int256","internalType":"int256"},{"name":"armorPenetration","type":"int256","internalType":"int256"},{"name":"attackModifierBonus","type":"int256","internalType":"int256"},{"name":"critChanceBonus","type":"int256","internalType":"int256"}]},{"name":"attackerId","type":"bytes32","internalType":"bytes32"},{"name":"defenderId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"damage","type":"int256","internalType":"int256"},{"name":"hit","type":"bool","internalType":"bool"},{"name":"crit","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__applyEquipmentBonuses","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"modifiedStats","type":"tuple","internalType":"struct AdjustedCombatStats","components":[{"name":"adjustedStrength","type":"uint256","internalType":"uint256"},{"name":"adjustedAgility","type":"uint256","internalType":"uint256"},{"name":"adjustedIntelligence","type":"uint256","internalType":"uint256"},{"name":"adjustedArmor","type":"uint256","internalType":"uint256"},{"name":"adjustedMaxHp","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canUse","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createAction","inputs":[{"name":"actionType","type":"uint8","internalType":"enum ActionType"},{"name":"actionStats","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"dropChance","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"dropChances","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItems","inputs":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"characterIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__endTurn","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__executeCombat","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getArmorStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_ArmorStats","type":"tuple","internalType":"struct ArmorStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"armorModifier","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentItemsCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEncounter","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_encounterData","type":"tuple","internalType":"struct CombatEncounterData","components":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"},{"name":"currentTurn","type":"uint256","internalType":"uint256"},{"name":"maxTurns","type":"uint256","internalType":"uint256"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMobId","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMobPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMulticallContract","inputs":[],"outputs":[{"name":"_multicall","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"UD__getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getSpawnCounter","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct StarterItemsData","components":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"maxDamage","type":"uint256","internalType":"uint256"},{"name":"minDamage","type":"uint256","internalType":"uint256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isItemOwner","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"participants","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidPvE","inputs":[{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isValidPvE","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawnMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD___calculateMagicAttack()":"e0cac377","UD___calculatePhysicalAttack((int256,int256,int256,int256),bytes32,bytes32,uint256,uint256)":"fa760cc5","UD__applyEquipmentBonuses(bytes32)":"54f1f2db","UD__checkRequirements(bytes32,uint256)":"bf4dbebc","UD__createAction(uint8,bytes)":"c3344bd2","UD__createItem(uint8,uint256,uint256,bytes,string)":"c2647a81","UD__createItems(uint8[],uint256[],uint256[],bytes[],string[])":"8a2d4e05","UD__createMatch(uint8,bytes32[],bytes32[])":"3e602b01","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__dropItems(uint256[],uint256[],bytes32[])":"e45cde14","UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"1f357129","UD__enterGame(bytes32)":"b968fa3a","UD__equipItems(bytes32,uint256[])":"2d9ac2be","UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"a0ba1f1e","UD__getArmorStats(uint256)":"e75aa93b","UD__getCharacterToken()":"49d8cf02","UD__getCharacterTokenId(bytes32)":"d97302d0","UD__getClass(bytes32)":"0ae6f9ab","UD__getCurrentItemsCounter()":"4652f280","UD__getCurrentLevel(uint256)":"e83e2af9","UD__getEncounter(bytes32)":"55faf03a","UD__getEntitiesAtPosition(uint16,uint16)":"d0f8a4f5","UD__getEntropy()":"b5c691c7","UD__getExperience(bytes32)":"a8b79e60","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getMob(bytes32)":"5ac36570","UD__getMob(uint256)":"622834d0","UD__getMobId(bytes32)":"53d64640","UD__getMobPosition(bytes32)":"8b3f8277","UD__getMonsterStats(bytes32)":"e6c22e06","UD__getMonsterStats(uint256)":"91b22373","UD__getMulticallContract()":"71ce415d","UD__getName(bytes32)":"e902af7a","UD__getNpcStats(bytes32)":"a17a6b7f","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(bytes32)":"777c2caf","UD__getOwnerAddress(bytes32)":"4f10aabc","UD__getPlayerEntityId(uint256)":"02ee03fa","UD__getPythProvider()":"e24cefd9","UD__getSpawnCounter(bytes32)":"f4e1633b","UD__getStarterItems(uint8)":"b8bfeca1","UD__getStats(bytes32)":"14b13b0e","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isAtPosition(bytes32,uint16,uint16)":"f48a3972","UD__isEquipped(bytes32,uint256)":"7273e39a","UD__isItemOwner(uint256,address)":"b3634118","UD__isParticipant(address,bytes32)":"7868d715","UD__isParticipant(address,bytes32[])":"18853912","UD__isValidCharacterId(bytes32)":"fa1becc4","UD__isValidMob(bytes32)":"bace814a","UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)":"c6d5525b","UD__issueStarterItems(bytes32)":"f9d175ed","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(bytes32,uint16,uint16)":"d1138fa1","UD__rollStats(bytes32,bytes32,uint8)":"18f14781","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(bytes32)":"7e29a6f6","UD__spawnMob(uint256,uint16,uint16)":"15bc4248","UD__unequipItem(bytes32,uint256)":"7a190324","UD__updateTokenUri(bytes32,string)":"ecd73f84","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dropChance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"dropChances\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getMulticallContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_multicall\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be\",\"dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f\",\"dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716\",\"dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD___calculateMagicAttack"},{"inputs":[{"internalType":"struct PhysicalAttackStats","name":"attackStats","type":"tuple","components":[{"internalType":"int256","name":"bonusDamage","type":"int256"},{"internalType":"int256","name":"armorPenetration","type":"int256"},{"internalType":"int256","name":"attackModifierBonus","type":"int256"},{"internalType":"int256","name":"critChanceBonus","type":"int256"}]},{"internalType":"bytes32","name":"attackerId","type":"bytes32"},{"internalType":"bytes32","name":"defenderId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD___calculatePhysicalAttack","outputs":[{"internalType":"int256","name":"damage","type":"int256"},{"internalType":"bool","name":"hit","type":"bool"},{"internalType":"bool","name":"crit","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__applyEquipmentBonuses","outputs":[{"internalType":"struct AdjustedCombatStats","name":"modifiedStats","type":"tuple","components":[{"internalType":"uint256","name":"adjustedStrength","type":"uint256"},{"internalType":"uint256","name":"adjustedAgility","type":"uint256"},{"internalType":"uint256","name":"adjustedIntelligence","type":"uint256"},{"internalType":"uint256","name":"adjustedArmor","type":"uint256"},{"internalType":"uint256","name":"adjustedMaxHp","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"class","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"canUse","type":"bool"}]},{"inputs":[{"internalType":"enum ActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"actionStats","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"UD__createAction","outputs":[{"internalType":"bytes32","name":"actionId","type":"bytes32"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"dropChance","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"uint256[]","name":"dropChances","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes32[]","name":"characterIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItems"},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"UD__endTurn"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"UD__executeCombat"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getArmorStats","outputs":[{"internalType":"struct ArmorStats","name":"_ArmorStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint256","name":"armorModifier","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCurrentItemsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getEncounter","outputs":[{"internalType":"struct CombatEncounterData","name":"_encounterData","type":"tuple","components":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"currentTurn","type":"uint256"},{"internalType":"uint256","name":"maxTurns","type":"uint256"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobPosition","outputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getMulticallContract","outputs":[{"internalType":"address","name":"_multicall","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getSpawnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"view","type":"function","name":"UD__getStarterItems","outputs":[{"internalType":"struct StarterItemsData","name":"data","type":"tuple","components":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"maxDamage","type":"uint256"},{"internalType":"uint256","name":"minDamage","type":"uint256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isItemOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"participants","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidMob","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isValidPvE","outputs":[{"internalType":"bool","name":"_isValidPvE","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawnMob","outputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__updateTokenUri"},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff","urls":["bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be","dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383","urls":["bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f","dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e","urls":["bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716","dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"}},"version":1},"id":205} \ No newline at end of file diff --git a/packages/contracts/out/MapSystem.sol/MapSystem.json b/packages/contracts/out/MapSystem.sol/MapSystem.json index 0530b1c7d..9241dd2d7 100644 --- a/packages/contracts/out/MapSystem.sol/MapSystem.json +++ b/packages/contracts/out/MapSystem.sol/MapSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220db304a2c15fe57a7b126a6dfefef8fe55bf176c940e755bff6b2c3300974b63c64736f6c63430008180033","sourceMap":"412:4148:214:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220db304a2c15fe57a7b126a6dfefef8fe55bf176c940e755bff6b2c3300974b63c64736f6c63430008180033","sourceMap":"412:4148:214:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:226;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:226;;;689:74;;677:2;662:18;1262:113:123;543:226:226;1755:239:214;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:226;;1401:2;1386:18;1616:110:123;1267:177:226;1580:169:214;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:214:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:214:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:214;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:214;;1279:70;;;;-1:-1:-1;;;1279:70:214;;2807:2:226;1279:70:214;;;2789:21:226;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:214;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:214;;3212:2:226;1360:67:214;;;3194:21:226;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:214;3010:349:226;1360:67:214;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:214;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:214;;605:69;;;;-1:-1:-1;;;605:69:214;;3566:2:226;605:69:214;;;3548:21:226;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:214;3364:399:226;605:69:214;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:214;;3970:2:226;685:62:214;;;3952:21:226;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:214;3768:345:226;685:62:214;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:214;;4320:2:226;885:37:214;;;4302:21:226;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:214;4118:339:226;885:37:214;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:214;;4664:2:226;932:38:214;;;4646:21:226;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:214;4462:339:226;932:38:214;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:214;;5008:2:226;980:91:214;;;4990:21:226;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:214;4806:354:226;980:91:214;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:191:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:191;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:182:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:182;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:182:o;4071:290:179:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;2592:291:193:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:193;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:193:o;5796:354:191:-;7947:22;;;16149:3:226;16145:16;;;16054:66;16141:25;;;7947:22:191;;;;16129:38:226;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:191;;;;;;;;;6023:1;16238:11:226;;;6009:16:191;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:191;;-1:-1:-1;;6023:1:191;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:191;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:193:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:193;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:226;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:193;;;;-1:-1:-1;;4107:27:193;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:182:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:182;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:226;;5922:2;5913:12;;5749:182;9759:28:182;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:185:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:214:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:214;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:214:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:214;;7009:2:226;4393:63:214;;;6991:21:226;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:214;6807:355:226;4393:63:214;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:214;;7369:2:226;2296:80:214;;;7351:21:226;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:214;7167:403:226;2296:80:214;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:226;;1401:2;1386:18;;1267:177;2515:42:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:214;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:226;2594:9:214;;:20;;1386:18:226;;2594:38:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:214;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:226;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:214;;;;-1:-1:-1;;2754:148:214;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:214;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:191:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:191;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:191;-1:-1:-1;;;;7036:160:191:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:182:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:182;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:226;;5922:2;5913:12;;5749:182;12402:28:182;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:182;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:214:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:188:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:188;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:226;18911:18;;3713:52:107;18794:248:226;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:214:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:214;;3609:106;-1:-1:-1;3609:106:214:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:226;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:226;25536:15;;;45340:92:45;;;25518:34:226;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:226;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:226;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:226;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:226;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:226;;51494:30:45;27964:279:226;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:226;;;1386:18;;7664:67:24;1267:177:226;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:226;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:226;30142:79;;2092:30:124;;;30130:92:226;2092:30:124;;30238:12:226;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:193;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:193;6914:97;14:332:226;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:226;;1710:439;-1:-1:-1;;;;;1710:439:226:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:226;;2420:180;-1:-1:-1;2420:180:226:o;5165:184::-;-1:-1:-1;;;5214:1:226;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:226;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:226;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:226;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:226;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:226;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:226;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:226;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:226;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:226;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:226;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:226:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:226;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:226:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:226:o;10716:184::-;-1:-1:-1;;;10765:1:226;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:226:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:226;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:226;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:226;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:226;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:226:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:226;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:226:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:226;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:226:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:226;;15702:184;-1:-1:-1;15702:184:226:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:226:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:226:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:226;;21043:640;-1:-1:-1;;;;;;;21043:640:226:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:226:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:226:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:226:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:226;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:226:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:226:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x3cd69d8fc6f1beb049b8a5e37fb53404cc7517a39230f84a0c6b2e2c764b2c30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://666fd263955c6d05cf07686d79e7763ed13007246cc608712b0065c87d55b9da\",\"dweb:/ipfs/QmfP5vNwnRKzY7ug1BET3ZF4bNHSfiM2LACKnU2kAKnPTV\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be\",\"dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f\",\"dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xccf04cacce39f86742d109d243c1b17b947650a17d482bfee4e682ce43f05881\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c910fa067203cb370c0eb5dce4ce1b3cfff166079963a4261a7db8a4db87fbb7\",\"dweb:/ipfs/QmNiknjWZFzp8t38dwhRfTrvJtoHHnrQzuGQjjSTdyZsxX\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716\",\"dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1b5fdd11b046dba8091312776b0aaf2a015992a2c794a54696e7dda21ddfee62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de52255175f50d737bde1fc543c1f82524f4cd89fef1a29e3a26333e15be7c22\",\"dweb:/ipfs/QmQXWEbqp97QCjofXc42YDi35QG3wRsuctXXhhyzLmnSFo\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x3cd69d8fc6f1beb049b8a5e37fb53404cc7517a39230f84a0c6b2e2c764b2c30","urls":["bzz-raw://666fd263955c6d05cf07686d79e7763ed13007246cc608712b0065c87d55b9da","dweb:/ipfs/QmfP5vNwnRKzY7ug1BET3ZF4bNHSfiM2LACKnU2kAKnPTV"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff","urls":["bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be","dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383","urls":["bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f","dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xccf04cacce39f86742d109d243c1b17b947650a17d482bfee4e682ce43f05881","urls":["bzz-raw://c910fa067203cb370c0eb5dce4ce1b3cfff166079963a4261a7db8a4db87fbb7","dweb:/ipfs/QmNiknjWZFzp8t38dwhRfTrvJtoHHnrQzuGQjjSTdyZsxX"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e","urls":["bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716","dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1b5fdd11b046dba8091312776b0aaf2a015992a2c794a54696e7dda21ddfee62","urls":["bzz-raw://de52255175f50d737bde1fc543c1f82524f4cd89fef1a29e3a26333e15be7c22","dweb:/ipfs/QmQXWEbqp97QCjofXc42YDi35QG3wRsuctXXhhyzLmnSFo"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":214} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220a4ad18fa52194998f62789e684994ac718fcb2044aaa2714aaf327304a6a611964736f6c63430008180033","sourceMap":"412:4148:215:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220a4ad18fa52194998f62789e684994ac718fcb2044aaa2714aaf327304a6a611964736f6c63430008180033","sourceMap":"412:4148:215:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:228;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:228;;;689:74;;677:2;662:18;1262:113:123;543:226:228;1755:239:215;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:228;;1401:2;1386:18;1616:110:123;1267:177:228;1580:169:215;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:215:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:215:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:215;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:215;;1279:70;;;;-1:-1:-1;;;1279:70:215;;2807:2:228;1279:70:215;;;2789:21:228;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:215;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:215;;3212:2:228;1360:67:215;;;3194:21:228;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:215;3010:349:228;1360:67:215;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:215;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:215;;605:69;;;;-1:-1:-1;;;605:69:215;;3566:2:228;605:69:215;;;3548:21:228;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:215;3364:399:228;605:69:215;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:215;;3970:2:228;685:62:215;;;3952:21:228;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:215;3768:345:228;685:62:215;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:215;;4320:2:228;885:37:215;;;4302:21:228;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:215;4118:339:228;885:37:215;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:215;;4664:2:228;932:38:215;;;4646:21:228;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:215;4462:339:228;932:38:215;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:215;;5008:2:228;980:91:215;;;4990:21:228;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:215;4806:354:228;980:91:215;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:191:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:191;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:182:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:182;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:182:o;4071:290:179:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;2592:291:193:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:193;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:193:o;5796:354:191:-;7947:22;;;16149:3:228;16145:16;;;16054:66;16141:25;;;7947:22:191;;;;16129:38:228;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:191;;;;;;;;;6023:1;16238:11:228;;;6009:16:191;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:191;;-1:-1:-1;;6023:1:191;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:191;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:193:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:193;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:228;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:193;;;;-1:-1:-1;;4107:27:193;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:182:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:182;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;9759:28:182;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:185:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:215:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:215;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:215:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:215;;7009:2:228;4393:63:215;;;6991:21:228;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:215;6807:355:228;4393:63:215;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:215;;7369:2:228;2296:80:215;;;7351:21:228;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:215;7167:403:228;2296:80:215;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:228;;1401:2;1386:18;;1267:177;2515:42:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:215;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:228;2594:9:215;;:20;;1386:18:228;;2594:38:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:215;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:228;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:215;;;;-1:-1:-1;;2754:148:215;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:215;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:191:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:191;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:191;-1:-1:-1;;;;7036:160:191:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:182:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:182;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;12402:28:182;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:182;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:215:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:188:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:188;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:228;18911:18;;3713:52:107;18794:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:215:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:215;;3609:106;-1:-1:-1;3609:106:215:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:228;25536:15;;;45340:92:45;;;25518:34:228;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:228;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:228;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:228;;51494:30:45;27964:279:228;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:228;;;1386:18;;7664:67:24;1267:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:228;30142:79;;2092:30:124;;;30130:92:228;2092:30:124;;30238:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:193;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:193;6914:97;14:332:228;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:228;;1710:439;-1:-1:-1;;;;;1710:439:228:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:228;;2420:180;-1:-1:-1;2420:180:228:o;5165:184::-;-1:-1:-1;;;5214:1:228;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:228;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:228;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:228;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:228;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:228;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:228;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:228;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:228;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:228;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:228;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:228:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:228;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:228:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:228:o;10716:184::-;-1:-1:-1;;;10765:1:228;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:228:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:228;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:228;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:228;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:228;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:228:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:228;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:228:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:228;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:228:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:228;;15702:184;-1:-1:-1;15702:184:228:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:228:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:228:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:228;;21043:640;-1:-1:-1;;;;;;;21043:640:228:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:228:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:228:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:228:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:228;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:228:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:228:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be\",\"dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f\",\"dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716\",\"dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff","urls":["bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be","dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383","urls":["bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f","dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e","urls":["bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716","dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":215} \ No newline at end of file diff --git a/packages/contracts/script/PostDeploy.s.sol b/packages/contracts/script/PostDeploy.s.sol index 6d5cae39d..1c10fa100 100644 --- a/packages/contracts/script/PostDeploy.s.sol +++ b/packages/contracts/script/PostDeploy.s.sol @@ -1,323 +1,351 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.8.24; -import { Script } from "forge-std/Script.sol"; -import { console } from "forge-std/console.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore, EncodedLengths } from "@latticexyz/store/src/StoreCore.sol"; -import { MockEntropy } from "@test/mocks/MockEntropy.sol"; -import { PuppetModule } from "@latticexyz/world-modules/src/modules/puppet/PuppetModule.sol"; -import { Systems } from "@latticexyz/world/src/codegen/tables/Systems.sol"; -import { IWorld } from "@world/IWorld.sol"; -import { UltimateDominionConfig, Levels, MapConfig } from "@codegen/index.sol"; -import { ResourceIdLib } from "@latticexyz/store/src/ResourceId.sol"; -import { ResourceId, WorldResourceIdLib, WorldResourceIdInstance } from "@latticexyz/world/src/WorldResourceId.sol"; -import { RESOURCE_SYSTEM } from "@latticexyz/world/src/worldResourceTypes.sol"; -import { RngSystem } from "../src/systems/RngSystem.sol"; -import { IERC721Mintable } from "@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol"; -import { registerERC721 } from "@latticexyz/world-modules/src/modules/erc721-puppet/registerERC721.sol"; -import { ERC721System } from "@latticexyz/world-modules/src/modules/erc721-puppet/ERC721System.sol"; -import { ERC721MetadataData } from "@latticexyz/world-modules/src/modules/erc721-puppet/tables/ERC721Metadata.sol"; -import { GOLD_NAMESPACE, CHARACTERS_NAMESPACE, ERC721_NAME, ERC721_SYMBOL, ITEMS_NAMESPACE, TOKEN_URI } from "../constants.sol"; -import { NoTransferHook } from "../src/NoTransferHook.sol"; -import { BEFORE_CALL_SYSTEM } from "@latticexyz/world/src/systemHookTypes.sol"; -import { Classes, ItemType, MobType } from "@codegen/common.sol"; -import { WeaponStats, MonsterStats, MonsterTemplateDetails, WeaponTemplateDetails } from "@interfaces/Structs.sol"; -import { IERC20Mintable } from "@latticexyz/world-modules/src/modules/erc20-puppet/IERC20Mintable.sol"; -import { ERC20MetadataData } from "@latticexyz/world-modules/src/modules/erc20-puppet/tables/ERC20Metadata.sol"; -import { ERC20System } from "@latticexyz/world-modules/src/modules/erc20-puppet/ERC20System.sol"; -import { registerERC20 } from "@latticexyz/world-modules/src/modules/erc20-puppet/registerERC20.sol"; -import { System } from "@latticexyz/world/src/System.sol"; -import { CharacterSystem } from "../src/systems/CharacterSystem.sol"; - -import { ERC1155Module } from "@erc1155/ERC1155Module.sol"; -import { ERC1155System } from "@erc1155/ERC1155System.sol"; -import { IERC1155 } from "@erc1155/IERC1155.sol"; -import { registerERC1155 } from "@erc1155/registerERC1155.sol"; -import { _erc1155SystemId } from "@erc1155/utils.sol"; - -import { Multicall3 } from "./Multicall3.sol"; +import {Script} from "forge-std/Script.sol"; +import {console} from "forge-std/console.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore, EncodedLengths} from "@latticexyz/store/src/StoreCore.sol"; +import {MockEntropy} from "@test/mocks/MockEntropy.sol"; +import {PuppetModule} from "@latticexyz/world-modules/src/modules/puppet/PuppetModule.sol"; +import {Systems} from "@latticexyz/world/src/codegen/tables/Systems.sol"; +import {IWorld} from "@world/IWorld.sol"; +import {UltimateDominionConfig, Levels, MapConfig} from "@codegen/index.sol"; +import {ResourceIdLib} from "@latticexyz/store/src/ResourceId.sol"; +import {ResourceId, WorldResourceIdLib, WorldResourceIdInstance} from "@latticexyz/world/src/WorldResourceId.sol"; +import {RESOURCE_SYSTEM} from "@latticexyz/world/src/worldResourceTypes.sol"; +import {RngSystem} from "../src/systems/RngSystem.sol"; +import {IERC721Mintable} from "@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol"; +import {registerERC721} from "@latticexyz/world-modules/src/modules/erc721-puppet/registerERC721.sol"; +import {ERC721System} from "@latticexyz/world-modules/src/modules/erc721-puppet/ERC721System.sol"; +import {ERC721MetadataData} from "@latticexyz/world-modules/src/modules/erc721-puppet/tables/ERC721Metadata.sol"; +import { + GOLD_NAMESPACE, + CHARACTERS_NAMESPACE, + ERC721_NAME, + ERC721_SYMBOL, + ITEMS_NAMESPACE, + TOKEN_URI +} from "../constants.sol"; +import {NoTransferHook} from "../src/NoTransferHook.sol"; +import {BEFORE_CALL_SYSTEM} from "@latticexyz/world/src/systemHookTypes.sol"; +import {Classes, ItemType, MobType} from "@codegen/common.sol"; +import { + WeaponStats, + MonsterStats, + MonsterTemplateDetails, + WeaponTemplateDetails, + ArmorTemplateDetails, + ArmorStats, + StarterItems +} from "@interfaces/Structs.sol"; +import {IERC20Mintable} from "@latticexyz/world-modules/src/modules/erc20-puppet/IERC20Mintable.sol"; +import {ERC20MetadataData} from "@latticexyz/world-modules/src/modules/erc20-puppet/tables/ERC20Metadata.sol"; +import {ERC20System} from "@latticexyz/world-modules/src/modules/erc20-puppet/ERC20System.sol"; +import {registerERC20} from "@latticexyz/world-modules/src/modules/erc20-puppet/registerERC20.sol"; +import {System} from "@latticexyz/world/src/System.sol"; +import {CharacterSystem} from "../src/systems/CharacterSystem.sol"; + +import {ERC1155Module} from "@erc1155/ERC1155Module.sol"; +import {ERC1155System} from "@erc1155/ERC1155System.sol"; +import {IERC1155} from "@erc1155/IERC1155.sol"; +import {registerERC1155} from "@erc1155/registerERC1155.sol"; +import {_erc1155SystemId} from "@erc1155/utils.sol"; + +import {Multicall3} from "./Multicall3.sol"; import "forge-std/console2.sol"; import "forge-std/StdJson.sol"; struct ResourceIds { - ResourceId erc721SystemId; - ResourceId erc721NamespaceId; - ResourceId characterSystemId; - ResourceId erc20SystemId; - ResourceId erc20NamespaceId; - ResourceId rngSystemId; - ResourceId erc1155SystemId; - ResourceId erc1155NamespaceId; - ResourceId itemsSystemId; - ResourceId combatSystemId; + ResourceId erc721SystemId; + ResourceId erc721NamespaceId; + ResourceId characterSystemId; + ResourceId erc20SystemId; + ResourceId erc20NamespaceId; + ResourceId rngSystemId; + ResourceId erc1155SystemId; + ResourceId erc1155NamespaceId; + ResourceId itemsSystemId; + ResourceId combatSystemId; } contract PostDeploy is Script { - using stdJson for string; - - IWorld public world; - ResourceIds public resourceIds; - address public worldAddress; - - function run(address _worldAddress) external { - worldAddress = _worldAddress; - world = IWorld(worldAddress); - // Specify a store so that you can use tables directly in PostDeploy - StoreSwitch.setStoreAddress(worldAddress); - - // Load the private key from the `PRIVATE_KEY` environment variable (in .env) - uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - - // Start broadcasting transactions from the deployer account - vm.startBroadcast(deployerPrivateKey); - if (block.chainid == 31337) { - // Set entropy contracts - address multicall3 = address(new Multicall3()); - address mockEntropy = address(new MockEntropy()); - UltimateDominionConfig.setMulticall(multicall3); - UltimateDominionConfig.setEntropy(mockEntropy); - UltimateDominionConfig.setPythProvider(address(1)); - } else if (block.chainid == 84532) { - UltimateDominionConfig.setMulticall(0xcA11bde05977b3631167028862bE2a173976CA11); - UltimateDominionConfig.setEntropy(0x41c9e39574F40Ad34c79f1C99B66A45eFB830d4c); - UltimateDominionConfig.setPythProvider(0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344); - } else if (block.chainid == 8453) { - UltimateDominionConfig.setMulticall(0xcA11bde05977b3631167028862bE2a173976CA11); - UltimateDominionConfig.setEntropy(0x6E7D74FA7d5c90FEF9F0512987605a6d546181Bb); - UltimateDominionConfig.setPythProvider(0x52DeaA1c84233F7bb8C8A45baeDE41091c616506); - } + using stdJson for string; - uint16 height = uint16(10); - uint16 width = uint16(10); - MapConfig.set(width, height); - - //install puppet - world.installModule(new PuppetModule(), new bytes(0)); - - _addRngSystem(); - - // install gold module - IERC20Mintable goldToken = registerERC20( - world, - GOLD_NAMESPACE, - ERC20MetadataData({ decimals: 18, name: "GoldToken", symbol: unicode"🜚" }) - ); - - UltimateDominionConfig.setGoldToken(address(goldToken)); - - // characters - IERC721Mintable characters = registerERC721( - world, - CHARACTERS_NAMESPACE, - ERC721MetadataData({ name: ERC721_NAME, symbol: ERC721_SYMBOL, baseURI: TOKEN_URI }) - ); - - UltimateDominionConfig.setCharacterToken(address(characters)); - - { - resourceIds.erc20NamespaceId = WorldResourceIdLib.encodeNamespace(GOLD_NAMESPACE); - resourceIds.erc20SystemId = WorldResourceIdLib.encode({ - typeId: RESOURCE_SYSTEM, - namespace: "Gold", - name: "GoldToken" - }); - - resourceIds.characterSystemId = WorldResourceIdLib.encode({ - typeId: RESOURCE_SYSTEM, - namespace: "UD", - name: "CharacterSystem" - }); - - resourceIds.erc721NamespaceId = WorldResourceIdLib.encodeNamespace(CHARACTERS_NAMESPACE); - - resourceIds.erc721SystemId = WorldResourceIdLib.encode({ - typeId: RESOURCE_SYSTEM, - namespace: "Characters", - name: "ERC721System" - }); - resourceIds.combatSystemId = WorldResourceIdLib.encode({ - typeId: RESOURCE_SYSTEM, - namespace: "UD", - name: "CombatSystem" - }); - resourceIds.erc1155SystemId = _erc1155SystemId(ITEMS_NAMESPACE); - resourceIds.erc1155NamespaceId = WorldResourceIdLib.encodeNamespace(ITEMS_NAMESPACE); - resourceIds.itemsSystemId = WorldResourceIdLib.encode({ - typeId: RESOURCE_SYSTEM, - namespace: "UD", - name: "ItemsSystem" - }); + IWorld public world; + ResourceIds public resourceIds; + address public worldAddress; + + function run(address _worldAddress) external { + worldAddress = _worldAddress; + world = IWorld(worldAddress); + // Specify a store so that you can use tables directly in PostDeploy + StoreSwitch.setStoreAddress(worldAddress); + + // Load the private key from the `PRIVATE_KEY` environment variable (in .env) + uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + + // Start broadcasting transactions from the deployer account + vm.startBroadcast(deployerPrivateKey); + if (block.chainid == 31337) { + // Set entropy contracts + address multicall3 = address(new Multicall3()); + address mockEntropy = address(new MockEntropy()); + UltimateDominionConfig.setMulticall(multicall3); + UltimateDominionConfig.setEntropy(mockEntropy); + UltimateDominionConfig.setPythProvider(address(1)); + } else if (block.chainid == 84532) { + UltimateDominionConfig.setMulticall(0xcA11bde05977b3631167028862bE2a173976CA11); + UltimateDominionConfig.setEntropy(0x41c9e39574F40Ad34c79f1C99B66A45eFB830d4c); + UltimateDominionConfig.setPythProvider(0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344); + } else if (block.chainid == 8453) { + UltimateDominionConfig.setMulticall(0xcA11bde05977b3631167028862bE2a173976CA11); + UltimateDominionConfig.setEntropy(0x6E7D74FA7d5c90FEF9F0512987605a6d546181Bb); + UltimateDominionConfig.setPythProvider(0x52DeaA1c84233F7bb8C8A45baeDE41091c616506); + } + + uint16 height = uint16(10); + uint16 width = uint16(10); + MapConfig.set(width, height); + + //install puppet + world.installModule(new PuppetModule(), new bytes(0)); + + _addRngSystem(); + + // install gold module + IERC20Mintable goldToken = registerERC20( + world, GOLD_NAMESPACE, ERC20MetadataData({decimals: 18, name: "GoldToken", symbol: unicode"🜚"}) + ); + + UltimateDominionConfig.setGoldToken(address(goldToken)); + + // characters + IERC721Mintable characters = registerERC721( + world, + CHARACTERS_NAMESPACE, + ERC721MetadataData({name: ERC721_NAME, symbol: ERC721_SYMBOL, baseURI: TOKEN_URI}) + ); + + UltimateDominionConfig.setCharacterToken(address(characters)); + + { + resourceIds.erc20NamespaceId = WorldResourceIdLib.encodeNamespace(GOLD_NAMESPACE); + resourceIds.erc20SystemId = + WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: "Gold", name: "GoldToken"}); + + resourceIds.characterSystemId = + WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: "UD", name: "CharacterSystem"}); + + resourceIds.erc721NamespaceId = WorldResourceIdLib.encodeNamespace(CHARACTERS_NAMESPACE); + + resourceIds.erc721SystemId = + WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: "Characters", name: "ERC721System"}); + resourceIds.combatSystemId = + WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: "UD", name: "CombatSystem"}); + resourceIds.erc1155SystemId = _erc1155SystemId(ITEMS_NAMESPACE); + resourceIds.erc1155NamespaceId = WorldResourceIdLib.encodeNamespace(ITEMS_NAMESPACE); + resourceIds.itemsSystemId = + WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: "UD", name: "ItemsSystem"}); + } + + address characterSystemAddress = Systems.getSystem(resourceIds.characterSystemId); + + System goldSystemContract = new ERC20System(); + + world.registerSystem(resourceIds.erc20SystemId, goldSystemContract, true); + + IWorld(worldAddress).grantAccess(resourceIds.erc20NamespaceId, worldAddress); + IWorld(worldAddress).registerFunctionSelector(resourceIds.erc20SystemId, "mint(address,uint256)"); + + world.transferOwnership(resourceIds.erc20NamespaceId, address(characterSystemAddress)); + + System systemContract = new ERC721System(); + world.registerSystem(resourceIds.erc721SystemId, systemContract, true); + + NoTransferHook characterHook = new NoTransferHook(); + + world.registerSystemHook(resourceIds.erc721SystemId, characterHook, BEFORE_CALL_SYSTEM); + + // Transfer characters namespace to World + world.grantAccess(resourceIds.erc721SystemId, worldAddress); + world.grantAccess(resourceIds.erc721SystemId, characterSystemAddress); + world.transferOwnership(resourceIds.erc721NamespaceId, characterSystemAddress); + + address items = _deployErc1155(world, ITEMS_NAMESPACE); + UltimateDominionConfig.setItems(address(items)); + //allow entropy system to call callback on Combat system + world.grantAccess(resourceIds.combatSystemId, UltimateDominionConfig.getEntropy()); + _createStarterItems(); + _createMonsters(); + setLevels(); + vm.stopBroadcast(); } - address characterSystemAddress = Systems.getSystem(resourceIds.characterSystemId); - - System goldSystemContract = new ERC20System(); - - world.registerSystem(resourceIds.erc20SystemId, goldSystemContract, true); - - IWorld(worldAddress).grantAccess(resourceIds.erc20NamespaceId, worldAddress); - IWorld(worldAddress).registerFunctionSelector(resourceIds.erc20SystemId, "mint(address,uint256)"); - - world.transferOwnership(resourceIds.erc20NamespaceId, address(characterSystemAddress)); - - System systemContract = new ERC721System(); - world.registerSystem(resourceIds.erc721SystemId, systemContract, true); - - NoTransferHook characterHook = new NoTransferHook(); - - world.registerSystemHook(resourceIds.erc721SystemId, characterHook, BEFORE_CALL_SYSTEM); - - // Transfer characters namespace to World - world.grantAccess(resourceIds.erc721SystemId, worldAddress); - world.grantAccess(resourceIds.erc721SystemId, characterSystemAddress); - world.transferOwnership(resourceIds.erc721NamespaceId, characterSystemAddress); - - address items = _deployErc1155(world, ITEMS_NAMESPACE); - UltimateDominionConfig.setItems(address(items)); - //allow entropy system to call callback on Combat system - world.grantAccess(resourceIds.combatSystemId, UltimateDominionConfig.getEntropy()); - _createStarterItems(); - _createMonsters(); - setLevels(); - vm.stopBroadcast(); - } - - function _deployErc1155(IWorld _world, bytes14 itemsNamespace) internal returns (address) { - string memory json = vm.readFile("items.json"); - string memory metadataUriPrefix = json.readString(".metadataUriPrefix"); - - IERC1155 _items = registerERC1155(_world, itemsNamespace, metadataUriPrefix); - - // ERC1155System erc1155System = new ERC1155System(); - address itemsSystemAddress = Systems.getSystem(resourceIds.itemsSystemId); - - // _world.registerSystem(resourceIds.erc1155SystemId, erc1155System, false); - _world.grantAccess(resourceIds.erc1155SystemId, worldAddress); - world.transferOwnership(resourceIds.erc1155NamespaceId, itemsSystemAddress); - return address(_items); - } - - function _addRngSystem() internal { - System rngSystem = new RngSystem(); - - resourceIds.rngSystemId = WorldResourceIdLib.encode(RESOURCE_SYSTEM, "", "RngSystem"); - - world.registerSystem(resourceIds.rngSystemId, rngSystem, true); - world.registerRootFunctionSelector( - resourceIds.rngSystemId, - "getRng(bytes32,uint8,bytes)", - "getRng(bytes32,uint8,bytes)" - ); - world.registerRootFunctionSelector( - resourceIds.rngSystemId, - "entropyCallback(uint64,address,bytes32)", - "entropyCallback(uint64,address,bytes32)" - ); - world.registerRootFunctionSelector( - resourceIds.rngSystemId, - "_entropyCallback(uint64,address,bytes32)", - "_entropyCallback(uint64,address,bytes32)" - ); - world.registerRootFunctionSelector(resourceIds.rngSystemId, "getFee()", "getFee()"); - world.registerRootFunctionSelector(resourceIds.rngSystemId, "getEntropy()", "getEntropy()"); - } - - function _createStarterItems() internal { - string memory json = vm.readFile("items.json"); - bytes memory itemStatsData = vm.parseJson(json, ".items"); - - WeaponTemplateDetails[] memory itemTemplateDetails = abi.decode(itemStatsData, (WeaponTemplateDetails[])); - - uint256[] memory warriorItemIds = new uint256[](1); - uint256[] memory rogueItemIds = new uint256[](1); - uint256[] memory mageItemIds = new uint256[](1); - - for (uint256 i = 0; i < itemTemplateDetails.length; i++) { - WeaponTemplateDetails memory itemTemplate = itemTemplateDetails[i]; - - WeaponStats memory newWeapon = WeaponStats({ - agiModifier: itemTemplate.stats.agiModifier, - classRestrictions: itemTemplate.stats.classRestrictions, - hitPointModifier: itemTemplate.stats.hitPointModifier, - intModifier: itemTemplate.stats.intModifier, - maxDamage: itemTemplate.stats.maxDamage, - minDamage: itemTemplate.stats.minDamage, - minLevel: itemTemplate.stats.minLevel, - strModifier: itemTemplate.stats.strModifier - }); - - uint256 starterItemId = world.UD__createItem( - ItemType.Weapon, - 10 ether, - abi.encode(newWeapon), - itemTemplate.metadataUri - ); - - if (i == 0) { - warriorItemIds[0] = starterItemId; - } - if (i == 1) { - rogueItemIds[0] = starterItemId; - } - if (i == 2) { - mageItemIds[0] = starterItemId; - } - } + function _deployErc1155(IWorld _world, bytes14 itemsNamespace) internal returns (address) { + string memory json = vm.readFile("items.json"); + string memory metadataUriPrefix = json.readString(".metadataUriPrefix"); - uint256[] memory amounts = new uint256[](1); - amounts[0] = 1; + IERC1155 _items = registerERC1155(_world, itemsNamespace, metadataUriPrefix); - world.UD__setStarterItems(Classes.Warrior, warriorItemIds, amounts); - world.UD__setStarterItems(Classes.Rogue, rogueItemIds, amounts); - world.UD__setStarterItems(Classes.Mage, mageItemIds, amounts); - } + // ERC1155System erc1155System = new ERC1155System(); + address itemsSystemAddress = Systems.getSystem(resourceIds.itemsSystemId); - function _createMonsters() internal { - string memory json = vm.readFile("monsters.json"); - bytes memory monsterStatsData = vm.parseJson(json, ".monsters"); + // _world.registerSystem(resourceIds.erc1155SystemId, erc1155System, false); + _world.grantAccess(resourceIds.erc1155SystemId, worldAddress); + world.transferOwnership(resourceIds.erc1155NamespaceId, itemsSystemAddress); + return address(_items); + } - MonsterTemplateDetails[] memory monsterTemplateDetails = abi.decode(monsterStatsData, (MonsterTemplateDetails[])); + function _addRngSystem() internal { + System rngSystem = new RngSystem(); + + resourceIds.rngSystemId = WorldResourceIdLib.encode(RESOURCE_SYSTEM, "", "RngSystem"); + + world.registerSystem(resourceIds.rngSystemId, rngSystem, true); + world.registerRootFunctionSelector( + resourceIds.rngSystemId, "getRng(bytes32,uint8,bytes)", "getRng(bytes32,uint8,bytes)" + ); + world.registerRootFunctionSelector( + resourceIds.rngSystemId, + "entropyCallback(uint64,address,bytes32)", + "entropyCallback(uint64,address,bytes32)" + ); + world.registerRootFunctionSelector( + resourceIds.rngSystemId, + "_entropyCallback(uint64,address,bytes32)", + "_entropyCallback(uint64,address,bytes32)" + ); + world.registerRootFunctionSelector(resourceIds.rngSystemId, "getFee()", "getFee()"); + world.registerRootFunctionSelector(resourceIds.rngSystemId, "getEntropy()", "getEntropy()"); + } - for (uint256 i = 0; i < monsterTemplateDetails.length; i++) { - MonsterTemplateDetails memory monsterTemplate = monsterTemplateDetails[i]; + function _createStarterItems() internal { + // string memory root = vm.projectRoot(); + // string memory path = string.concat("items.json"); + string memory json = vm.readFile("items.json"); + bytes memory data = vm.parseJson(json); + + StarterItems memory itemsData = abi.decode(data, (StarterItems)); + + uint256[] memory warriorItemIds = new uint256[](2); + uint256[] memory rogueItemIds = new uint256[](2); + uint256[] memory mageItemIds = new uint256[](2); + + for (uint256 i = 0; i < itemsData.weapons.length; i++) { + WeaponTemplateDetails memory weaponTemplate = itemsData.weapons[i]; + + WeaponStats memory newWeapon = WeaponStats({ + agiModifier: weaponTemplate.stats.agiModifier, + classRestrictions: weaponTemplate.stats.classRestrictions, + hitPointModifier: weaponTemplate.stats.hitPointModifier, + intModifier: weaponTemplate.stats.intModifier, + maxDamage: weaponTemplate.stats.maxDamage, + minDamage: weaponTemplate.stats.minDamage, + minLevel: weaponTemplate.stats.minLevel, + strModifier: weaponTemplate.stats.strModifier + }); + + uint256 starterArmorId = world.UD__createItem( + ItemType.Weapon, + weaponTemplate.initialSupply, + weaponTemplate.dropChance, + abi.encode(newWeapon), + weaponTemplate.metadataUri + ); + + if (i == 0) { + warriorItemIds[1] = starterArmorId; + } + if (i == 1) { + rogueItemIds[1] = starterArmorId; + } + if (i == 2) { + mageItemIds[1] = starterArmorId; + } + } + + for (uint256 i = 0; i < itemsData.armor.length; i++) { + ArmorTemplateDetails memory armorTemplate = itemsData.armor[i]; + + ArmorStats memory newArmor = ArmorStats({ + agiModifier: armorTemplate.stats.agiModifier, + armorModifier: armorTemplate.stats.armorModifier, + classRestrictions: armorTemplate.stats.classRestrictions, + hitPointModifier: armorTemplate.stats.hitPointModifier, + intModifier: armorTemplate.stats.intModifier, + minLevel: armorTemplate.stats.minLevel, + strModifier: armorTemplate.stats.strModifier + }); + + uint256 starterItemId = world.UD__createItem( + ItemType.Armor, + armorTemplate.initialSupply, + armorTemplate.dropChance, + abi.encode(newArmor), + armorTemplate.metadataUri + ); + + if (i == 0) { + warriorItemIds[0] = starterItemId; + rogueItemIds[0] = starterItemId; + mageItemIds[0] = starterItemId; + } + } + uint256[] memory amounts = new uint256[](2); + amounts[0] = 1; + amounts[1] = 1; + + world.UD__setStarterItems(Classes.Warrior, warriorItemIds, amounts); + world.UD__setStarterItems(Classes.Rogue, rogueItemIds, amounts); + world.UD__setStarterItems(Classes.Mage, mageItemIds, amounts); + } - MonsterStats memory newMonster = MonsterStats({ - agility: monsterTemplate.stats.agility, - armor: monsterTemplate.stats.armor, - class: monsterTemplate.stats.class, - experience: monsterTemplate.stats.experience, - hitPoints: monsterTemplate.stats.hitPoints, - level: monsterTemplate.stats.level, - intelligence: monsterTemplate.stats.intelligence, - inventory: monsterTemplate.stats.inventory, - strength: monsterTemplate.stats.strength - }); + function _createMonsters() internal { + string memory json = vm.readFile("monsters.json"); + bytes memory monsterStatsData = vm.parseJson(json, ".monsters"); + + MonsterTemplateDetails[] memory monsterTemplateDetails = + abi.decode(monsterStatsData, (MonsterTemplateDetails[])); + + for (uint256 i = 0; i < monsterTemplateDetails.length; i++) { + MonsterTemplateDetails memory monsterTemplate = monsterTemplateDetails[i]; + + MonsterStats memory newMonster = MonsterStats({ + agility: monsterTemplate.stats.agility, + armor: monsterTemplate.stats.armor, + class: monsterTemplate.stats.class, + experience: monsterTemplate.stats.experience, + hitPoints: monsterTemplate.stats.hitPoints, + level: monsterTemplate.stats.level, + intelligence: monsterTemplate.stats.intelligence, + inventory: monsterTemplate.stats.inventory, + strength: monsterTemplate.stats.strength + }); + + world.UD__createMob(MobType.Monster, abi.encode(newMonster), monsterTemplate.metadataUri); + } + } - world.UD__createMob(MobType.Monster, abi.encode(newMonster), monsterTemplate.metadataUri); + function setLevels() internal { + Levels.setExperience(1, 300); + Levels.setExperience(2, 900); + Levels.setExperience(3, 2700); + Levels.setExperience(4, 6500); + Levels.setExperience(5, 14000); + Levels.setExperience(6, 23000); + Levels.setExperience(7, 34000); + Levels.setExperience(8, 48000); + Levels.setExperience(9, 64000); + Levels.setExperience(10, 85000); + Levels.setExperience(11, 100000); + Levels.setExperience(12, 120000); + Levels.setExperience(13, 140000); + Levels.setExperience(14, 165000); + Levels.setExperience(15, 195000); + Levels.setExperience(16, 225000); + Levels.setExperience(17, 265000); + Levels.setExperience(18, 305000); + Levels.setExperience(19, 355000); } - } - - function setLevels() internal { - Levels.setExperience(1, 300); - Levels.setExperience(2, 900); - Levels.setExperience(3, 2700); - Levels.setExperience(4, 6500); - Levels.setExperience(5, 14000); - Levels.setExperience(6, 23000); - Levels.setExperience(7, 34000); - Levels.setExperience(8, 48000); - Levels.setExperience(9, 64000); - Levels.setExperience(10, 85000); - Levels.setExperience(11, 100000); - Levels.setExperience(12, 120000); - Levels.setExperience(13, 140000); - Levels.setExperience(14, 165000); - Levels.setExperience(15, 195000); - Levels.setExperience(16, 225000); - Levels.setExperience(17, 265000); - Levels.setExperience(18, 305000); - Levels.setExperience(19, 355000); - } } diff --git a/packages/contracts/src/codegen/tables/Items.sol b/packages/contracts/src/codegen/tables/Items.sol index 062d4d430..d7a85595c 100644 --- a/packages/contracts/src/codegen/tables/Items.sol +++ b/packages/contracts/src/codegen/tables/Items.sol @@ -21,6 +21,7 @@ import { ItemType } from "./../common.sol"; struct ItemsData { ItemType itemType; + uint256 dropChance; bytes stats; } @@ -29,12 +30,12 @@ library Items { ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004974656d730000000000000000000000); FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010101000000000000000000000000000000000000000000000000000000); + FieldLayout.wrap(0x0021020101200000000000000000000000000000000000000000000000000000); // Hex-encoded key schema of (uint256) Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint8, bytes) - Schema constant _valueSchema = Schema.wrap(0x0001010100c40000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint8, uint256, bytes) + Schema constant _valueSchema = Schema.wrap(0x00210201001fc400000000000000000000000000000000000000000000000000); /** * @notice Get the table's key field names. @@ -50,9 +51,10 @@ library Items { * @return fieldNames An array of strings with the names of value fields. */ function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); + fieldNames = new string[](3); fieldNames[0] = "itemType"; - fieldNames[1] = "stats"; + fieldNames[1] = "dropChance"; + fieldNames[2] = "stats"; } /** @@ -111,6 +113,48 @@ library Items { StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(itemType)), _fieldLayout); } + /** + * @notice Get dropChance. + */ + function getDropChance(uint256 itemId) internal view returns (uint256 dropChance) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get dropChance. + */ + function _getDropChance(uint256 itemId) internal view returns (uint256 dropChance) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set dropChance. + */ + function setDropChance(uint256 itemId, uint256 dropChance) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((dropChance)), _fieldLayout); + } + + /** + * @notice Set dropChance. + */ + function _setDropChance(uint256 itemId, uint256 dropChance) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((dropChance)), _fieldLayout); + } + /** * @notice Get stats. */ @@ -306,8 +350,8 @@ library Items { /** * @notice Set the full data using individual values. */ - function set(uint256 itemId, ItemType itemType, bytes memory stats) internal { - bytes memory _staticData = encodeStatic(itemType); + function set(uint256 itemId, ItemType itemType, uint256 dropChance, bytes memory stats) internal { + bytes memory _staticData = encodeStatic(itemType, dropChance); EncodedLengths _encodedLengths = encodeLengths(stats); bytes memory _dynamicData = encodeDynamic(stats); @@ -321,8 +365,8 @@ library Items { /** * @notice Set the full data using individual values. */ - function _set(uint256 itemId, ItemType itemType, bytes memory stats) internal { - bytes memory _staticData = encodeStatic(itemType); + function _set(uint256 itemId, ItemType itemType, uint256 dropChance, bytes memory stats) internal { + bytes memory _staticData = encodeStatic(itemType, dropChance); EncodedLengths _encodedLengths = encodeLengths(stats); bytes memory _dynamicData = encodeDynamic(stats); @@ -337,7 +381,7 @@ library Items { * @notice Set the full data using the data struct. */ function set(uint256 itemId, ItemsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.itemType); + bytes memory _staticData = encodeStatic(_table.itemType, _table.dropChance); EncodedLengths _encodedLengths = encodeLengths(_table.stats); bytes memory _dynamicData = encodeDynamic(_table.stats); @@ -352,7 +396,7 @@ library Items { * @notice Set the full data using the data struct. */ function _set(uint256 itemId, ItemsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.itemType); + bytes memory _staticData = encodeStatic(_table.itemType, _table.dropChance); EncodedLengths _encodedLengths = encodeLengths(_table.stats); bytes memory _dynamicData = encodeDynamic(_table.stats); @@ -366,8 +410,10 @@ library Items { /** * @notice Decode the tightly packed blob of static data using this table's field layout. */ - function decodeStatic(bytes memory _blob) internal pure returns (ItemType itemType) { + function decodeStatic(bytes memory _blob) internal pure returns (ItemType itemType, uint256 dropChance) { itemType = ItemType(uint8(Bytes.getBytes1(_blob, 0))); + + dropChance = (uint256(Bytes.getBytes32(_blob, 1))); } /** @@ -396,7 +442,7 @@ library Items { EncodedLengths _encodedLengths, bytes memory _dynamicData ) internal pure returns (ItemsData memory _table) { - (_table.itemType) = decodeStatic(_staticData); + (_table.itemType, _table.dropChance) = decodeStatic(_staticData); (_table.stats) = decodeDynamic(_encodedLengths, _dynamicData); } @@ -425,8 +471,8 @@ library Items { * @notice Tightly pack static (fixed length) data using this table's schema. * @return The static data, encoded into a sequence of bytes. */ - function encodeStatic(ItemType itemType) internal pure returns (bytes memory) { - return abi.encodePacked(itemType); + function encodeStatic(ItemType itemType, uint256 dropChance) internal pure returns (bytes memory) { + return abi.encodePacked(itemType, dropChance); } /** @@ -456,9 +502,10 @@ library Items { */ function encode( ItemType itemType, + uint256 dropChance, bytes memory stats ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(itemType); + bytes memory _staticData = encodeStatic(itemType, dropChance); EncodedLengths _encodedLengths = encodeLengths(stats); bytes memory _dynamicData = encodeDynamic(stats); diff --git a/packages/contracts/src/codegen/world/IItemsSystem.sol b/packages/contracts/src/codegen/world/IItemsSystem.sol index 478e59d95..ae9e4e705 100644 --- a/packages/contracts/src/codegen/world/IItemsSystem.sol +++ b/packages/contracts/src/codegen/world/IItemsSystem.sol @@ -15,6 +15,7 @@ interface IItemsSystem { function UD__createItem( ItemType itemType, uint256 supply, + uint256 dropChance, bytes memory stats, string memory itemMetadataURI ) external returns (uint256); @@ -22,6 +23,7 @@ interface IItemsSystem { function UD__createItems( ItemType[] memory itemTypes, uint256[] memory supply, + uint256[] memory dropChances, bytes[] memory stats, string[] memory itemMetadataURIs ) external; diff --git a/packages/contracts/src/interfaces/Structs.sol b/packages/contracts/src/interfaces/Structs.sol index 71da51c21..1dfce41bc 100644 --- a/packages/contracts/src/interfaces/Structs.sol +++ b/packages/contracts/src/interfaces/Structs.sol @@ -1,60 +1,76 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.8.24; -import { ItemType, Classes, Alignment } from "@codegen/common.sol"; +import {ItemType, Classes, Alignment} from "@codegen/common.sol"; struct WeaponStats { - int256 agiModifier; - uint8[] classRestrictions; - int256 hitPointModifier; - int256 intModifier; - uint256 maxDamage; - uint256 minDamage; - uint256 minLevel; - int256 strModifier; + int256 agiModifier; + uint8[] classRestrictions; + int256 hitPointModifier; + int256 intModifier; + uint256 maxDamage; + uint256 minDamage; + uint256 minLevel; + int256 strModifier; } struct WeaponTemplateDetails { - string metadataUri; - string name; - WeaponStats stats; + uint256 dropChance; + uint256 initialSupply; + string metadataUri; + string name; + WeaponStats stats; +} + +struct ArmorTemplateDetails { + uint256 dropChance; + uint256 initialSupply; + string metadataUri; + string name; + ArmorStats stats; +} + +struct StarterItems { + ArmorTemplateDetails[] armor; + string metadataUriPrefix; + WeaponTemplateDetails[] weapons; } struct ArmorStats { - uint256 armorModifier; - uint8[] classRestrictions; - uint256 minLevel; - int256 strModifier; - int256 agiModifier; - int256 intModifier; - int256 hitPointModifier; + int256 agiModifier; + uint256 armorModifier; + uint8[] classRestrictions; + int256 hitPointModifier; + int256 intModifier; + uint256 minLevel; + int256 strModifier; } struct MonsterStats { - //base to hit number for this mob for physical attacks = agility * physicalAttackConversion - uint256 agility; - // damage reduction: subtracted from total damage - uint256 armor; - // monster's class - Classes class; - // the amount of experience this monster is worth - uint256 experience; - // hit points - uint256 hitPoints; - // base to hit modifier for magical Attacks = inteligence * magicDefenseConversion - uint256 intelligence; - // item ids of potential drops - uint256[] inventory; - // monster level - uint256 level; - // base damage = strength * damangeConversion - uint256 strength; + //base to hit number for this mob for physical attacks = agility * physicalAttackConversion + uint256 agility; + // damage reduction: subtracted from total damage + uint256 armor; + // monster's class + Classes class; + // the amount of experience this monster is worth + uint256 experience; + // hit points + uint256 hitPoints; + // base to hit modifier for magical Attacks = inteligence * magicDefenseConversion + uint256 intelligence; + // item ids of potential drops + uint256[] inventory; + // monster level + uint256 level; + // base damage = strength * damangeConversion + uint256 strength; } struct MonsterTemplateDetails { - string metadataUri; - string name; - MonsterStats stats; + string metadataUri; + string name; + MonsterStats stats; } struct AdjustedCombatStats { @@ -69,41 +85,41 @@ struct AdjustedCombatStats { } struct PhysicalAttackStats { - // additional damage on top of item damage - int256 bonusDamage; - // base armor penetration - int256 armorPenetration; - //bonus chance to hit - int256 attackModifierBonus; - // crit chance - int256 critChanceBonus; + // additional damage on top of item damage + int256 bonusDamage; + // base armor penetration + int256 armorPenetration; + //bonus chance to hit + int256 attackModifierBonus; + // crit chance + int256 critChanceBonus; } struct Action { - bytes32 attackerEntityId; - bytes32 defenderEntityId; - bytes32 actionId; - uint256 weaponId; + bytes32 attackerEntityId; + bytes32 defenderEntityId; + bytes32 actionId; + uint256 weaponId; } struct MagicAttackStats { - // additional damage on top of item damage - uint256 bonusDamage; - // list of items that can deal this attack - uint256[] requiredItems; - // base armor penetration - uint256 armorPenetration; + // additional damage on top of item damage + uint256 bonusDamage; + // list of items that can deal this attack + uint256[] requiredItems; + // base armor penetration + uint256 armorPenetration; } struct NPCStats { - string name; - bytes32[] storyPathIds; - Alignment alignment; + string name; + bytes32[] storyPathIds; + Alignment alignment; } struct QuestEntity { - // entity id is a keccak256(characterId, questId)) - bytes32 entityId; - uint256 questId; - uint256 currentStep; + // entity id is a keccak256(characterId, questId)) + bytes32 entityId; + uint256 questId; + uint256 currentStep; } diff --git a/packages/contracts/src/systems/CombatSystem.sol b/packages/contracts/src/systems/CombatSystem.sol index 4469843bd..8f99997d3 100644 --- a/packages/contracts/src/systems/CombatSystem.sol +++ b/packages/contracts/src/systems/CombatSystem.sol @@ -205,6 +205,8 @@ contract CombatSystem is System { ) { // for some reason block.timestamp is not availible here on anvil? encounterData.end = block.number; + CombatEncounter.set(encounterId, encounterData); + _endMatch(encounterId, randomNumber); } } @@ -252,7 +254,7 @@ contract CombatSystem is System { uint64[] memory rnChunks = LibChunks.get4Chunks(randomNumber); (hit, crit) = _calculatePhysicalAttackModifier( - uint256(rnChunks[1]), uint256(rnChunks[0]), attackStats, attacker, defender + uint256(rnChunks[0]), uint256(rnChunks[1]), attackStats, attacker, defender ); if (hit) { @@ -312,4 +314,14 @@ contract CombatSystem is System { } function _calculateMagicAttack() public {} + + function _endMatch(bytes32 encounterId, uint256 randomNumber) + internal + returns (uint256[] memory itemIds, uint256[] memory amounts, uint256 goldAmount) + { + CombatEncounterData memory encounterData = CombatEncounter.get(encounterId); + //check dead attackers and defenders + + //if dead player, drop + } } diff --git a/packages/contracts/src/systems/ItemsSystem.sol b/packages/contracts/src/systems/ItemsSystem.sol index b81ea7321..9bb3deb13 100644 --- a/packages/contracts/src/systems/ItemsSystem.sol +++ b/packages/contracts/src/systems/ItemsSystem.sol @@ -45,18 +45,27 @@ contract ItemsSystem is System { items = IERC1155System(UltimateDominionConfig.getItems()); } - function createItem(ItemType itemType, uint256 supply, bytes memory stats, string memory itemMetadataURI) - public - returns (uint256) - { + function createItem( + ItemType itemType, + uint256 supply, + uint256 dropChance, + bytes memory stats, + string memory itemMetadataURI + ) public returns (uint256) { uint256 itemId = _incrementItemsCounter(); + // create new item struct + ItemsData memory newItem = ItemsData({itemType: itemType, dropChance: dropChance, stats: stats}); + + // mint supply to this contract IWorld(_world()).call( _erc1155SystemId(ITEMS_NAMESPACE), abi.encodeWithSignature("mint(address,uint256,uint256,bytes)", address(this), itemId, supply, "") ); - + // see if you can guess what this is doing... setTokenUri(itemId, itemMetadataURI); - Items.set(itemId, itemType, stats); + + // set the new item struct in the items table; + Items.set(itemId, newItem); return itemId; } @@ -64,6 +73,7 @@ contract ItemsSystem is System { function createItems( ItemType[] memory itemTypes, uint256[] memory supply, + uint256[] memory dropChances, bytes[] memory stats, string[] memory itemMetadataURIs ) public { @@ -74,7 +84,7 @@ contract ItemsSystem is System { ); for (uint256 i; i < len; i++) { - createItem(itemTypes[i], supply[i], stats[i], itemMetadataURIs[i]); + createItem(itemTypes[i], supply[i], dropChances[i], stats[i], itemMetadataURIs[i]); } } diff --git a/packages/contracts/test/ItemsSystem.t.sol b/packages/contracts/test/ItemsSystem.t.sol index bf8f0b8e8..88becc8fc 100644 --- a/packages/contracts/test/ItemsSystem.t.sol +++ b/packages/contracts/test/ItemsSystem.t.sol @@ -51,11 +51,11 @@ contract Test_ItemsSystem is SetUp, GasReporter { }); vm.startPrank(deployer); uint256 firstItemId = - world.UD__createItem(ItemType.Weapon, 10 ether, abi.encode(weaponStats), "test_Weapon_uri1/"); + world.UD__createItem(ItemType.Weapon, 10 ether, 100000000, abi.encode(weaponStats), "test_Weapon_uri1/"); uint256 newItemId = - world.UD__createItem(ItemType.Weapon, 100 ether, abi.encode(weaponStats), "test_Weapon_uri/"); + world.UD__createItem(ItemType.Weapon, 100 ether, 100000000, abi.encode(weaponStats), "test_Weapon_uri/"); - assertEq(newItemId, 6); + assertEq(newItemId, 7); assertEq(world.UD__getTotalSupply(newItemId), 100 ether); assertEq(world.UD__getTotalSupply(firstItemId), 10 ether); assertEq( @@ -80,7 +80,7 @@ contract Test_ItemsSystem is SetUp, GasReporter { }); vm.startPrank(alice); vm.expectRevert(); - world.UD__createItem(ItemType.Weapon, 100 ether, abi.encode(weaponStats), "test_Weapon_uri1/"); + world.UD__createItem(ItemType.Weapon, 100 ether, 100000000, abi.encode(weaponStats), "test_Weapon_uri1/"); } function test_GetTotalSupply() public { @@ -96,7 +96,8 @@ contract Test_ItemsSystem is SetUp, GasReporter { strModifier: 0 }); vm.startPrank(deployer); - uint256 id = world.UD__createItem(ItemType.Weapon, 100 ether, abi.encode(weaponStats), "test_Weapon_uri/"); + uint256 id = + world.UD__createItem(ItemType.Weapon, 100 ether, 100000000, abi.encode(weaponStats), "test_Weapon_uri/"); assertEq(world.UD__getTotalSupply(id), 100 ether); } diff --git a/packages/contracts/test/SetUp.sol b/packages/contracts/test/SetUp.sol index b76a4f9ff..c153625cc 100644 --- a/packages/contracts/test/SetUp.sol +++ b/packages/contracts/test/SetUp.sol @@ -80,7 +80,7 @@ contract SetUp is Test { vm.label(worldAddress, "world"); vm.label(world.UD__getCharacterToken(), "character token"); - newArmorId = world.UD__createItem(ItemType.Armor, 10 ether, abi.encode(newArmor), "setup_armor_uri"); + newArmorId = world.UD__createItem(ItemType.Armor, 10 ether, 100000000, abi.encode(newArmor), "setup_armor_uri"); world.grantAccess(_itemsSystemId("UD"), address(this)); diff --git a/packages/contracts/worlds.json b/packages/contracts/worlds.json index 816c90d02..d6eee4f93 100644 --- a/packages/contracts/worlds.json +++ b/packages/contracts/worlds.json @@ -1,6 +1,6 @@ { "31337": { - "address": "0xb0eb8eb2a362195dfb259990695cea53a4efa5bf" + "address": "0x971a5fa566bc3ca474e1f0216d0dd01edc87f096" }, "84532": { "address": "0x304d17a51415f9ce2a1c3d5213a10c58098b1d44", From f9991bf2ca51f9ce92119ec949d4c8514bc24330 Mon Sep 17 00:00:00 2001 From: MrDeadCe11 Date: Fri, 12 Jul 2024 01:10:54 -0500 Subject: [PATCH 2/8] basic gold drop calculation in place --- packages/contracts/constants.sol | 3 ++ .../CharacterSystem.abi.json | 2 +- .../CharacterSystem.abi.json.d.ts | 2 +- .../CharacterSystem.sol/CharacterSystem.json | 2 +- .../contracts/out/IWorld.sol/IWorld.abi.json | 48 ++++++++++++++----- .../out/IWorld.sol/IWorld.abi.json.d.ts | 48 ++++++++++++++----- packages/contracts/out/IWorld.sol/IWorld.json | 2 +- .../out/MapSystem.sol/MapSystem.json | 2 +- .../src/codegen/world/ICharacterSystem.sol | 2 +- .../src/codegen/world/ICombatSystem.sol | 2 + .../contracts/src/codegen/world/IWorld.sol | 2 + .../contracts/src/systems/CharacterSystem.sol | 4 +- .../contracts/src/systems/CombatSystem.sol | 40 +++++++++++++--- .../contracts/src/systems/EquipmentSystem.sol | 4 +- packages/contracts/test/CombatSystem.t.sol | 5 ++ packages/contracts/worlds.json | 2 +- 16 files changed, 129 insertions(+), 41 deletions(-) diff --git a/packages/contracts/constants.sol b/packages/contracts/constants.sol index 50f50c5e3..e23e56964 100644 --- a/packages/contracts/constants.sol +++ b/packages/contracts/constants.sol @@ -15,3 +15,6 @@ uint256 constant TO_HIT_MODIFIER = 150_000; uint256 constant DEFENSE_MODIFIER = 100_000; uint256 constant ATTACK_MODIFIER = 100_000; uint256 constant CRIT_MODIFIER = 2; + +//Gold Drop constants +uint256 constant BASE_GOLD_DROP = 1e15; // diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json index 971a77be0..4de872c84 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json @@ -91,7 +91,7 @@ }, { "type": "function", - "name": "getCurrentLevel", + "name": "getCurrentAvailableLevel", "inputs": [ { "name": "experience", diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts index efe4e473d..6ae3ada59 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts @@ -91,7 +91,7 @@ declare const abi: [ }, { "type": "function", - "name": "getCurrentLevel", + "name": "getCurrentAvailableLevel", "inputs": [ { "name": "experience", diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json index aabe66d38..d60562cf4 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061422b806100206000396000f3fe6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc5780633d0854ae116100e15780633d0854ae1461023857806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd578063238015701461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e610148366004613874565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b61018636600461388d565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b6366004613874565b61043f565b6040516101629190613903565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613a3e565b61045f565b604051908152602001610162565b34801561021757600080fd5b5061022b610226366004613874565b6106c1565b6040516101629190613a97565b34801561024457600080fd5b506101fd610253366004613874565b6106cc565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b366004613874565b61074a565b34801561029c57600080fd5b5061018b6102ab366004613874565b610755565b6102c36102be366004613aaa565b610881565b005b3480156102d157600080fd5b506101fd6102e0366004613874565b6109f9565b3480156102f157600080fd5b506102c3610300366004613ae7565b610a8e565b34801561031157600080fd5b506102c3610320366004613874565b610aff565b34801561033157600080fd5b5061014e610340366004613874565b610c31565b34801561035157600080fd5b5061014e610c3c565b34801561036657600080fd5b506101fd610375366004613874565b610c46565b34801561038657600080fd5b506101fd610395366004613874565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b61044761381e565b61043982610c51565b600061045a610d03565b905090565b60008061046a610d35565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610c3c565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610d68565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401613b7e565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106249190810190613bdc565b5061062e816109f9565b915061063a8286610db5565b6106448282610e84565b61064d84610f03565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001610fa8565b6106af8285611061565b6106b981846110e0565b509392505050565b600061043982611113565b60006106d860136111bd565b82106106e657506014919050565b60005b601481101561074457826106fc826111bd565b1115801561071b575082610719610714836001613c27565b6111bd565b115b156107325761072b816001613c27565b9150610744565b8061073c81613c3a565b9150506106e9565b50919050565b600061043982611239565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d6112cb565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190613c54565b60015b15610862576107f06112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190613c54565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a826112d5565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611367565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e8383611423565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401613c71565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a40000000000000000000000000000000000000000000000000000000017905261150c565b5050505050565b600080610a046112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190613c54565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611367565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff8316826110e0565b5050565b610b0881611367565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d816112d5565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b610bbc81674563918244f400006115ba565b610bc4610c3c565b6001600160a01b031663f9d175ed826040518263ffffffff1660e01b8152600401610bf191815260200190565b600060405180830381600087803b158015610c0b57600080fd5b505af1158015610c1f573d6000803e3d6000fd5b50505050610c2e816001611655565b50565b6000610439826116d9565b600061045a611776565b600061043982611780565b610c5961381e565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610c8f57610c8f613c99565b602090810291909101015260008080610ce87f7462554400000000000000000000000053746174730000000000000000000000857ee1080020200120202020200000000000000000000000000000000000000000611812565b925092509250610cf98383836118e2565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610d325750335b90565b600080610d4061195a565b90506000610d4f8260006119c2565b610d5a906001613c27565b905061043982600083611a73565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610deb57610deb613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610e4a919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611bbb565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610eba57610eba613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610e4a91815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610f3c57610f3c613c99565b60209081029190910101526000610f947f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611c70565b9050610fa08160f81c90565b949350505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610fde57610fde613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004e616d6545786973747300000000000060001b8260008560405160200161102c91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611bbb565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061109757611097613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610e4a91815260200190565b610afb61110c7f4368617261637465727300000000000000000000000000000000000000000000611d2d565b8383611d7a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061114c5761114c613c99565b602090810291909101015260006111a57f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611c70565b905060f881901c6002811115610fa057610fa06138cf565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106111f9576111f9613c99565b60209081029190910101526000610fa07f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611c70565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061127257611272613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611c70565b600061045a61195a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061130e5761130e613c99565b60209081029190910101526000610f947f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611c70565b60006113716112cb565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa1580156113de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190613c54565b6001600160a01b0316611413610450565b6001600160a01b03161492915050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061145957611459613c99565b6020908102919091010152610e7f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561149c5761149c6138cf565b6040516020016114d7919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611bbb565b606060008061152261151d85613caf565b611dcc565b91509150816000801b03611588576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052610fa08285611e9c565b6115c2611f77565b6001600160a01b03166340c10f196115d984610c31565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b15801561163957600080fd5b505af115801561164d573d6000803e3d6000fd5b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061168b5761168b613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610e4a91151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061171257611712613c99565b6020908102919091010152600061176b7f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611c70565b60601c949350505050565b600061045a611f81565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106117b9576117b9613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611c70565b6060600060606000611822611f81565b9050306001600160a01b0382160361184b5761183f878787611fc0565b935093509350506118d9565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611894908a908a908a90600401613d3b565b600060405180830381865afa1580156118b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261183f9190810190613d64565b93509350939050565b6118ea61381e565b6118f3846120c8565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611931576119316138cf565b6002811115611942576119426138cf565b90529790975250505093909252509195945050505050565b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611c70565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611a0757611a07613c99565b6020026020010181815250508260001b81600181518110611a2a57611a2a613c99565b60209081029190910101526000611a6a7f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611c70565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611ab457611ab4613c99565b6020026020010181815250508260001b81600181518110611ad757611ad7613c99565b602002602001018181525050611b3d7f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611b2091815260200190565b60408051601f19818403018152919052630100080160dd1b611bbb565b50505050565b6000611b5160706010613c27565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611bc5611f81565b9050306001600160a01b03821603611be957611be48686868686612136565b61164d565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611c369089908990899089908990600401613dc7565b600060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b50505050505050505050565b600080611c7b611f81565b9050306001600160a01b03821603611ca157611c998686868661214b565b915050610fa0565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611cec908990899089908990600401613e0e565b602060405180830381865afa158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c999190613e3d565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611db357611db3613c99565b602002602001018181525050611b3d8482600085612178565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611e2557611e25613c99565b602090810291909101015260008080611e7e7f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000611812565b925092509250611e8f838383612229565b9550955050505050915091565b60606000611ea8611776565b90506001600160a01b0381163003611ee9576000611ed0611ec7610d03565b60008787612241565b9350905080611ee257611ee28361237c565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611f309087908790600401613b7e565b6000604051808303816000875af1158015611f4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fa09190810190613bdc565b600061045a612384565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680611fbb573391505090565b919050565b6060600060606000611fd1856123e2565b9050611fde878783612405565b93506000611feb8661243e565b905080156120bd57611ffd888861247b565b935066ffffffffffffff841667ffffffffffffffff81111561202157612021613979565b6040519080825280601f01601f19166020018201604052801561204b576020820181803683370190505b5092506020830160005b828160ff1610156120ba57600061206d8b8b8461248e565b9050600061208a888460ff166028026038011c64ffffffffff1690565b9050612099826000838761250e565b6120a38185613c27565b9350505080806120b290613e56565b915050612055565b50505b505093509350939050565b6000806000806000806000806120e2896000016020015190565b60408a015160608b0151919950975060f81c6002811115612105576121056138cf565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f2858561214584876125da565b8561260b565b6000611a6a61215a86866128af565b60ff858116601b0360080285901c1661217385876125da565b612905565b6000612182611f81565b9050306001600160a01b038216036121a5576121a085858585612956565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea862906121f0908890889088908890600401613e75565b600060405180830381600087803b15801561220a57600080fd5b505af115801561221e573d6000803e3d6000fd5b505050505050505050565b60008061223585612991565b90969095509350505050565b60006060600080612251866129a6565b90925090506001600160a01b0382166122a2578561226e87612a4a565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190613b7e565b806122b1576122b18689612b78565b861561231d577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061230582612bc4565b905061231a826123158b84613c27565b612c3d565b50505b60006123298760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146123615761235c88888488612cd9565b61236d565b61236d88888488612d51565b90999098509650505050505050565b805160208201fd5b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360017e79070001141414141414000000000000000000000000000000000000000000611c70565b600060086123f260026020613eb4565b6123fc9190613ec7565b9190911c919050565b6060816000036124245750604080516020810190915260008152611bb4565b600061243085856128af565b9050611a6a81600085612db2565b6000600860018061245160026020613eb4565b61245b9190613eb4565b6124659190613eb4565b61246f9190613ec7565b8260ff911c1692915050565b6000611bb461248a8484612dd5565b5490565b600083836040516020016124a3929190613ede565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b821561259557602083106125385760208304840193506020838161253457612534613f1a565b0692505b821561259557602083900360008184101561255b5750600019600884021c612565565b50600019600882021c5b8554600886021b818451168219821617845250818411612586575050611b3d565b50600194909401939182900391015b5b602082106125b75783548152600190930192601f1990910190602001612596565b8115611b3d576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761260160ff601b83900360080287901c1683613c27565b91506001016125df565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361269557837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161268893929190613f30565b60405180910390a2611b3d565b60006126a185856128af565b905060006126ae86612e2b565b905060005b81518110156127835760008282815181106126d0576126d0613c99565b602002602001015190506126fc6004826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561277a576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612747908b908b908b908b90600401613f63565b600060405180830381600087803b15801561276157600080fd5b505af1158015612775573d6000803e3d6000fd5b505050505b506001016126b3565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516127b893929190613f30565b60405180910390a26127d3828565ffffffffffff1685612ed2565b60005b81518110156128a65760008282815181106127f3576127f3613c99565b6020026020010151905061281f6008826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561289d576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061286a908b908b908b908b90600401613f63565b600060405180830381600087803b15801561288457600080fd5b505af1158015612898573d6000803e3d6000fd5b505050505b506001016127d6565b50505050505050565b600082826040516020016128c4929190613ede565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b60006020821061292b5760208204840193506020828161292757612927613f1a565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b6000612962858561247b565b9050600061297f828560ff166028026038011c64ffffffffff1690565b905061164d8686866000858888612ee8565b602081015160408201516000905b9050915091565b604080516001808252818301909252600091829182916020808301908036833701905050905083816000815181106129e0576129e0613c99565b602090810291909101015260008080612a397f7462776f726c6400000000000000000053797374656d73000000000000000000857e15020014010000000000000000000000000000000000000000000000000000611fc0565b925092509250611e8f838383613322565b606081601081901b6000612a5d8361332e565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ab857612ab37fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613345565b612aef565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612b1657612b1183613345565b612b4d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612b5f93929190613f9c565b6040516020818303038152906040529350505050919050565b612b8282826133cb565b610afb57612b8f82612a4a565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e992919061402a565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612bfd57612bfd613c99565b60209081029190910101526000610fa07f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b61214b565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612c7357612c73613c99565b602002602001018181525050610e7f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612cbc91815260200190565b60408051601f19818403018152919052630100080160dd1b612136565b60006060836001600160a01b03166000612cf4858989613429565b604051612d019190614055565b60006040518083038185875af1925050503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b606091505b509097909650945050505050565b60006060836001600160a01b0316612d6a848888613429565b604051612d779190614055565b600060405180830381855af49150503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b60405160208101601f19603f84840101166040528282526106b98585858461250e565b60008282604051602001612dea929190613ede565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612e6557612e65613c99565b60209081029190910101526000612e9d7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613458565b9050610fa0612eaf8260008451613492565b613520565b60008160ff1682612ec58560581c90565b1660ff1614905092915050565b610e7f83838351612ee38560200190565b613531565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612fa8577f74620000000000000000000000000000000000000000000000000000000000008788604051602001612f6691815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e9939291600401614071565b6000612fc3828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683612fdc9190613eb4565b612fe69190613c27565b9050808214158015613008575081612ffe86886140b2565b64ffffffffff1614155b15613058576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff1611156130a9576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b60006130b68489846135f0565b905060006130c38b612e2b565b905060005b815181101561318e5760008282815181106130e5576130e5613c99565b602002602001015190506131116010826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561318557606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161315297969594939291906140d7565b600060405180830381600087803b15801561316c57600080fd5b505af1158015613180573d6000803e3d6000fd5b505050505b506001016130c8565b5064ffffffffff881660005b8a60ff168160ff1610156131cd576131c1878260ff166028026038011c64ffffffffff1690565b9091019060010161319a565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161320896959493929190614135565b60405180910390a2508284146132295760006132248c8c612dd5565b839055505b60006132368c8c8c61248e565b905061324a818a64ffffffffff1689612ed2565b5060005b815181101561331457600082828151811061326b5761326b613c99565b602002602001015190506132976020826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561330b57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016132d897969594939291906140d7565b600060405180830381600087803b1580156132f257600080fd5b505af1158015613306573d6000803e3d6000fd5b505050505b5060010161324e565b505050505050505050505050565b600080612235856136be565b600061333c60706010613c27565b9190911b919050565b606060005b601081101561339b576fffffffffffffffffffffffffffffffff198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561339b5760010161334a565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610fa0565b60006134197f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836136da565b80611bb45750611bb483836136da565b606083838360405160200161344093929190614191565b60405160208183030381529060405290509392505050565b6060610fa061346885858561248e565b600061348d85613478898961247b565b9060ff166028026038011c64ffffffffff1690565b612db2565b6000818311806134a25750835182115b156134df578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e9939291906141d0565b602084016134ed8482613c27565b905060006134fb8585613eb4565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611bb483601560006137a3565b82156135ab576020831061355b5760208304840193506020838161355757613557613f1a565b0692505b82156135ab5760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161359c575050611b3d565b50600194909401939182900391015b5b602082106135cd5780518455600190930192601f19909101906020016135ac565b8115611b3d576000600019600884021c8554835182191691161785555050505050565b600064ffffffffff821115613634576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613666578085038201915061366e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c61299f565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061371357613713613c99565b602002602001018181525050826001600160a01b031660001b8160018151811061373f5761373f613c99565b602090810291909101015260006137977f7462776f726c640000000000000000005265736f75726365416363657373000083837e0101000100000000000000000000000000000000000000000000000000000061214b565b9050611a6a8160f81c90565b606060006137b18560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816137d7576137d7613f1a565b04905060405193506020840160208202810160405281855260005b82811015613812578451871c8252938701936020909101906001016137f2565b50505050509392505050565b60405180610100016040528060008152602001600081526020016000600281111561384b5761384b6138cf565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561388657600080fd5b5035919050565b60006020828403121561389f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bb457600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110610c2e57634e487b7160e01b600052602160045260246000fd5b81518152602080830151908201526040820151610100820190613925816138e5565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114610c2e57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139b8576139b8613979565b604052919050565b600067ffffffffffffffff8211156139da576139da613979565b50601f01601f191660200190565b600082601f8301126139f957600080fd5b8135613a0c613a07826139c0565b61398f565b818152846020838601011115613a2157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613a5357600080fd5b8335613a5e81613964565b925060208401359150604084013567ffffffffffffffff811115613a8157600080fd5b613a8d868287016139e8565b9150509250925092565b60208101613aa4836138e5565b91905290565b600080600060608486031215613abf57600080fd5b8335925060208401359150604084013560038110613adc57600080fd5b809150509250925092565b60008060408385031215613afa57600080fd5b82359150602083013567ffffffffffffffff811115613b1857600080fd5b613b24858286016139e8565b9150509250929050565b60005b83811015613b49578181015183820152602001613b31565b50506000910152565b60008151808452613b6a816020860160208601613b2e565b601f01601f19169290920160200192915050565b828152604060208201526000610fa06040830184613b52565b600082601f830112613ba857600080fd5b8151613bb6613a07826139c0565b818152846020838601011115613bcb57600080fd5b610fa0826020830160208701613b2e565b600060208284031215613bee57600080fd5b815167ffffffffffffffff811115613c0557600080fd5b610fa084828501613b97565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439613c11565b60006000198203613c4d57613c4d613c11565b5060010190565b600060208284031215613c6657600080fd5b8151611bb481613964565b838152613c7d836138e5565b826020820152606060408201526000611a6a6060830184613b52565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf75780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b83811015613d3057815187529582019590820190600101613d14565b509495945050505050565b838152606060208201526000613d546060830185613cff565b9050826040830152949350505050565b600080600060608486031215613d7957600080fd5b835167ffffffffffffffff80821115613d9157600080fd5b613d9d87838801613b97565b9450602086015193506040860151915080821115613dba57600080fd5b50613a8d86828701613b97565b85815260a060208201526000613de060a0830187613cff565b60ff861660408401528281036060840152613dfb8186613b52565b9150508260808301529695505050505050565b848152608060208201526000613e276080830186613cff565b60ff949094166040830152506060015292915050565b600060208284031215613e4f57600080fd5b5051919050565b600060ff821660ff8103613e6c57613e6c613c11565b60010192915050565b848152608060208201526000613e8e6080830186613cff565b60ff851660408401528281036060840152613ea98185613b52565b979650505050505050565b8181038181111561043957610439613c11565b808202811582820484141761043957610439613c11565b8281526000602080830184516020860160005b82811015613f0d57815184529284019290840190600101613ef1565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b606081526000613f436060830186613cff565b65ffffffffffff851660208401528281036040840152610cf98185613b52565b848152608060208201526000613f7c6080830186613cff565b65ffffffffffff851660408401528281036060840152613ea98185613b52565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451613ffd816003860160208901613b2e565b80840190508160038201528451915061401d826004830160208801613b2e565b0160040195945050505050565b60408152600061403d6040830185613b52565b90506001600160a01b03831660208301529392505050565b60008251614067818460208701613b2e565b9190910192915050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611a6a6060830184613b52565b64ffffffffff8181168382160190808211156140d0576140d0613c11565b5092915050565b87815260e0602082015260006140f060e0830189613cff565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526141278185613b52565b9a9950505050505050505050565b60c08152600061414860c0830189613cff565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526141848185613b52565b9998505050505050505050565b600084516141a3818460208901613b2e565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006141e36060830186613b52565b6020830194909452506040015291905056fea2646970667358221220742a2fd45744c41e7d65d12942f110c7afad793e829dbf40f82832658ab5f6a064736f6c63430008180033","sourceMap":"1738:5941:211:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc5780633d0854ae116100e15780633d0854ae1461023857806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd578063238015701461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e610148366004613874565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b61018636600461388d565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b6366004613874565b61043f565b6040516101629190613903565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613a3e565b61045f565b604051908152602001610162565b34801561021757600080fd5b5061022b610226366004613874565b6106c1565b6040516101629190613a97565b34801561024457600080fd5b506101fd610253366004613874565b6106cc565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b366004613874565b61074a565b34801561029c57600080fd5b5061018b6102ab366004613874565b610755565b6102c36102be366004613aaa565b610881565b005b3480156102d157600080fd5b506101fd6102e0366004613874565b6109f9565b3480156102f157600080fd5b506102c3610300366004613ae7565b610a8e565b34801561031157600080fd5b506102c3610320366004613874565b610aff565b34801561033157600080fd5b5061014e610340366004613874565b610c31565b34801561035157600080fd5b5061014e610c3c565b34801561036657600080fd5b506101fd610375366004613874565b610c46565b34801561038657600080fd5b506101fd610395366004613874565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b61044761381e565b61043982610c51565b600061045a610d03565b905090565b60008061046a610d35565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610c3c565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610d68565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401613b7e565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106249190810190613bdc565b5061062e816109f9565b915061063a8286610db5565b6106448282610e84565b61064d84610f03565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001610fa8565b6106af8285611061565b6106b981846110e0565b509392505050565b600061043982611113565b60006106d860136111bd565b82106106e657506014919050565b60005b601481101561074457826106fc826111bd565b1115801561071b575082610719610714836001613c27565b6111bd565b115b156107325761072b816001613c27565b9150610744565b8061073c81613c3a565b9150506106e9565b50919050565b600061043982611239565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d6112cb565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190613c54565b60015b15610862576107f06112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190613c54565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a826112d5565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611367565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e8383611423565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401613c71565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a40000000000000000000000000000000000000000000000000000000017905261150c565b5050505050565b600080610a046112cb565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190613c54565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611367565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff8316826110e0565b5050565b610b0881611367565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d816112d5565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b610bbc81674563918244f400006115ba565b610bc4610c3c565b6001600160a01b031663f9d175ed826040518263ffffffff1660e01b8152600401610bf191815260200190565b600060405180830381600087803b158015610c0b57600080fd5b505af1158015610c1f573d6000803e3d6000fd5b50505050610c2e816001611655565b50565b6000610439826116d9565b600061045a611776565b600061043982611780565b610c5961381e565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610c8f57610c8f613c99565b602090810291909101015260008080610ce87f7462554400000000000000000000000053746174730000000000000000000000857ee1080020200120202020200000000000000000000000000000000000000000611812565b925092509250610cf98383836118e2565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610d325750335b90565b600080610d4061195a565b90506000610d4f8260006119c2565b610d5a906001613c27565b905061043982600083611a73565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610deb57610deb613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610e4a919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611bbb565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610eba57610eba613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610e4a91815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610f3c57610f3c613c99565b60209081029190910101526000610f947f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611c70565b9050610fa08160f81c90565b949350505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610fde57610fde613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004e616d6545786973747300000000000060001b8260008560405160200161102c91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611bbb565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061109757611097613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610e4a91815260200190565b610afb61110c7f4368617261637465727300000000000000000000000000000000000000000000611d2d565b8383611d7a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061114c5761114c613c99565b602090810291909101015260006111a57f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611c70565b905060f881901c6002811115610fa057610fa06138cf565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106111f9576111f9613c99565b60209081029190910101526000610fa07f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611c70565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061127257611272613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611c70565b600061045a61195a565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061130e5761130e613c99565b60209081029190910101526000610f947f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611c70565b60006113716112cb565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa1580156113de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190613c54565b6001600160a01b0316611413610450565b6001600160a01b03161492915050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061145957611459613c99565b6020908102919091010152610e7f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561149c5761149c6138cf565b6040516020016114d7919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611bbb565b606060008061152261151d85613caf565b611dcc565b91509150816000801b03611588576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052610fa08285611e9c565b6115c2611f77565b6001600160a01b03166340c10f196115d984610c31565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b15801561163957600080fd5b505af115801561164d573d6000803e3d6000fd5b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061168b5761168b613c99565b602002602001018181525050610e7f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610e4a91151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061171257611712613c99565b6020908102919091010152600061176b7f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611c70565b60601c949350505050565b600061045a611f81565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106117b9576117b9613c99565b60209081029190910101526000610fa07f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611c70565b6060600060606000611822611f81565b9050306001600160a01b0382160361184b5761183f878787611fc0565b935093509350506118d9565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611894908a908a908a90600401613d3b565b600060405180830381865afa1580156118b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261183f9190810190613d64565b93509350939050565b6118ea61381e565b6118f3846120c8565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611931576119316138cf565b6002811115611942576119426138cf565b90529790975250505093909252509195945050505050565b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611c70565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611a0757611a07613c99565b6020026020010181815250508260001b81600181518110611a2a57611a2a613c99565b60209081029190910101526000611a6a7f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611c70565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611ab457611ab4613c99565b6020026020010181815250508260001b81600181518110611ad757611ad7613c99565b602002602001018181525050611b3d7f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611b2091815260200190565b60408051601f19818403018152919052630100080160dd1b611bbb565b50505050565b6000611b5160706010613c27565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611bc5611f81565b9050306001600160a01b03821603611be957611be48686868686612136565b61164d565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611c369089908990899089908990600401613dc7565b600060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b50505050505050505050565b600080611c7b611f81565b9050306001600160a01b03821603611ca157611c998686868661214b565b915050610fa0565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611cec908990899089908990600401613e0e565b602060405180830381865afa158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c999190613e3d565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611b43565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611db357611db3613c99565b602002602001018181525050611b3d8482600085612178565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611e2557611e25613c99565b602090810291909101015260008080611e7e7f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000611812565b925092509250611e8f838383612229565b9550955050505050915091565b60606000611ea8611776565b90506001600160a01b0381163003611ee9576000611ed0611ec7610d03565b60008787612241565b9350905080611ee257611ee28361237c565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611f309087908790600401613b7e565b6000604051808303816000875af1158015611f4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fa09190810190613bdc565b600061045a612384565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680611fbb573391505090565b919050565b6060600060606000611fd1856123e2565b9050611fde878783612405565b93506000611feb8661243e565b905080156120bd57611ffd888861247b565b935066ffffffffffffff841667ffffffffffffffff81111561202157612021613979565b6040519080825280601f01601f19166020018201604052801561204b576020820181803683370190505b5092506020830160005b828160ff1610156120ba57600061206d8b8b8461248e565b9050600061208a888460ff166028026038011c64ffffffffff1690565b9050612099826000838761250e565b6120a38185613c27565b9350505080806120b290613e56565b915050612055565b50505b505093509350939050565b6000806000806000806000806120e2896000016020015190565b60408a015160608b0151919950975060f81c6002811115612105576121056138cf565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f2858561214584876125da565b8561260b565b6000611a6a61215a86866128af565b60ff858116601b0360080285901c1661217385876125da565b612905565b6000612182611f81565b9050306001600160a01b038216036121a5576121a085858585612956565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea862906121f0908890889088908890600401613e75565b600060405180830381600087803b15801561220a57600080fd5b505af115801561221e573d6000803e3d6000fd5b505050505050505050565b60008061223585612991565b90969095509350505050565b60006060600080612251866129a6565b90925090506001600160a01b0382166122a2578561226e87612a4a565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190613b7e565b806122b1576122b18689612b78565b861561231d577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061230582612bc4565b905061231a826123158b84613c27565b612c3d565b50505b60006123298760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146123615761235c88888488612cd9565b61236d565b61236d88888488612d51565b90999098509650505050505050565b805160208201fd5b6040805160008082526020820190925260006119b87f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360017e79070001141414141414000000000000000000000000000000000000000000611c70565b600060086123f260026020613eb4565b6123fc9190613ec7565b9190911c919050565b6060816000036124245750604080516020810190915260008152611bb4565b600061243085856128af565b9050611a6a81600085612db2565b6000600860018061245160026020613eb4565b61245b9190613eb4565b6124659190613eb4565b61246f9190613ec7565b8260ff911c1692915050565b6000611bb461248a8484612dd5565b5490565b600083836040516020016124a3929190613ede565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b821561259557602083106125385760208304840193506020838161253457612534613f1a565b0692505b821561259557602083900360008184101561255b5750600019600884021c612565565b50600019600882021c5b8554600886021b818451168219821617845250818411612586575050611b3d565b50600194909401939182900391015b5b602082106125b75783548152600190930192601f1990910190602001612596565b8115611b3d576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761260160ff601b83900360080287901c1683613c27565b91506001016125df565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361269557837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161268893929190613f30565b60405180910390a2611b3d565b60006126a185856128af565b905060006126ae86612e2b565b905060005b81518110156127835760008282815181106126d0576126d0613c99565b602002602001015190506126fc6004826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561277a576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612747908b908b908b908b90600401613f63565b600060405180830381600087803b15801561276157600080fd5b505af1158015612775573d6000803e3d6000fd5b505050505b506001016126b3565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516127b893929190613f30565b60405180910390a26127d3828565ffffffffffff1685612ed2565b60005b81518110156128a65760008282815181106127f3576127f3613c99565b6020026020010151905061281f6008826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561289d576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061286a908b908b908b908b90600401613f63565b600060405180830381600087803b15801561288457600080fd5b505af1158015612898573d6000803e3d6000fd5b505050505b506001016127d6565b50505050505050565b600082826040516020016128c4929190613ede565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b60006020821061292b5760208204840193506020828161292757612927613f1a565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b6000612962858561247b565b9050600061297f828560ff166028026038011c64ffffffffff1690565b905061164d8686866000858888612ee8565b602081015160408201516000905b9050915091565b604080516001808252818301909252600091829182916020808301908036833701905050905083816000815181106129e0576129e0613c99565b602090810291909101015260008080612a397f7462776f726c6400000000000000000053797374656d73000000000000000000857e15020014010000000000000000000000000000000000000000000000000000611fc0565b925092509250611e8f838383613322565b606081601081901b6000612a5d8361332e565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ab857612ab37fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613345565b612aef565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612b1657612b1183613345565b612b4d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612b5f93929190613f9c565b6040516020818303038152906040529350505050919050565b612b8282826133cb565b610afb57612b8f82612a4a565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e992919061402a565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612bfd57612bfd613c99565b60209081029190910101526000610fa07f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b61214b565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612c7357612c73613c99565b602002602001018181525050610e7f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612cbc91815260200190565b60408051601f19818403018152919052630100080160dd1b612136565b60006060836001600160a01b03166000612cf4858989613429565b604051612d019190614055565b60006040518083038185875af1925050503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b606091505b509097909650945050505050565b60006060836001600160a01b0316612d6a848888613429565b604051612d779190614055565b600060405180830381855af49150503d8060008114612d3e576040519150601f19603f3d011682016040523d82523d6000602084013e612d43565b60405160208101601f19603f84840101166040528282526106b98585858461250e565b60008282604051602001612dea929190613ede565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612e6557612e65613c99565b60209081029190910101526000612e9d7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613458565b9050610fa0612eaf8260008451613492565b613520565b60008160ff1682612ec58560581c90565b1660ff1614905092915050565b610e7f83838351612ee38560200190565b613531565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612fa8577f74620000000000000000000000000000000000000000000000000000000000008788604051602001612f6691815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e9939291600401614071565b6000612fc3828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683612fdc9190613eb4565b612fe69190613c27565b9050808214158015613008575081612ffe86886140b2565b64ffffffffff1614155b15613058576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff1611156130a9576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b60006130b68489846135f0565b905060006130c38b612e2b565b905060005b815181101561318e5760008282815181106130e5576130e5613c99565b602002602001015190506131116010826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561318557606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161315297969594939291906140d7565b600060405180830381600087803b15801561316c57600080fd5b505af1158015613180573d6000803e3d6000fd5b505050505b506001016130c8565b5064ffffffffff881660005b8a60ff168160ff1610156131cd576131c1878260ff166028026038011c64ffffffffff1690565b9091019060010161319a565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161320896959493929190614135565b60405180910390a2508284146132295760006132248c8c612dd5565b839055505b60006132368c8c8c61248e565b905061324a818a64ffffffffff1689612ed2565b5060005b815181101561331457600082828151811061326b5761326b613c99565b602002602001015190506132976020826affffffffffffffffffffff1916612eb490919063ffffffff16565b1561330b57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016132d897969594939291906140d7565b600060405180830381600087803b1580156132f257600080fd5b505af1158015613306573d6000803e3d6000fd5b505050505b5060010161324e565b505050505050505050505050565b600080612235856136be565b600061333c60706010613c27565b9190911b919050565b606060005b601081101561339b576fffffffffffffffffffffffffffffffff198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561339b5760010161334a565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610fa0565b60006134197f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836136da565b80611bb45750611bb483836136da565b606083838360405160200161344093929190614191565b60405160208183030381529060405290509392505050565b6060610fa061346885858561248e565b600061348d85613478898961247b565b9060ff166028026038011c64ffffffffff1690565b612db2565b6000818311806134a25750835182115b156134df578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e9939291906141d0565b602084016134ed8482613c27565b905060006134fb8585613eb4565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611bb483601560006137a3565b82156135ab576020831061355b5760208304840193506020838161355757613557613f1a565b0692505b82156135ab5760208390036000600019600885021c1990506008850281811c91508351811c905081198754168282161787555081841161359c575050611b3d565b50600194909401939182900391015b5b602082106135cd5780518455600190930192601f19909101906020016135ac565b8115611b3d576000600019600884021c8554835182191691161785555050505050565b600064ffffffffff821115613634576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613666578085038201915061366e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c61299f565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061371357613713613c99565b602002602001018181525050826001600160a01b031660001b8160018151811061373f5761373f613c99565b602090810291909101015260006137977f7462776f726c640000000000000000005265736f75726365416363657373000083837e0101000100000000000000000000000000000000000000000000000000000061214b565b9050611a6a8160f81c90565b606060006137b18560801c90565b90506fffffffffffffffffffffffffffffffff851660008582816137d7576137d7613f1a565b04905060405193506020840160208202810160405281855260005b82811015613812578451871c8252938701936020909101906001016137f2565b50505050509392505050565b60405180610100016040528060008152602001600081526020016000600281111561384b5761384b6138cf565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561388657600080fd5b5035919050565b60006020828403121561389f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bb457600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110610c2e57634e487b7160e01b600052602160045260246000fd5b81518152602080830151908201526040820151610100820190613925816138e5565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114610c2e57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139b8576139b8613979565b604052919050565b600067ffffffffffffffff8211156139da576139da613979565b50601f01601f191660200190565b600082601f8301126139f957600080fd5b8135613a0c613a07826139c0565b61398f565b818152846020838601011115613a2157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613a5357600080fd5b8335613a5e81613964565b925060208401359150604084013567ffffffffffffffff811115613a8157600080fd5b613a8d868287016139e8565b9150509250925092565b60208101613aa4836138e5565b91905290565b600080600060608486031215613abf57600080fd5b8335925060208401359150604084013560038110613adc57600080fd5b809150509250925092565b60008060408385031215613afa57600080fd5b82359150602083013567ffffffffffffffff811115613b1857600080fd5b613b24858286016139e8565b9150509250929050565b60005b83811015613b49578181015183820152602001613b31565b50506000910152565b60008151808452613b6a816020860160208601613b2e565b601f01601f19169290920160200192915050565b828152604060208201526000610fa06040830184613b52565b600082601f830112613ba857600080fd5b8151613bb6613a07826139c0565b818152846020838601011115613bcb57600080fd5b610fa0826020830160208701613b2e565b600060208284031215613bee57600080fd5b815167ffffffffffffffff811115613c0557600080fd5b610fa084828501613b97565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439613c11565b60006000198203613c4d57613c4d613c11565b5060010190565b600060208284031215613c6657600080fd5b8151611bb481613964565b838152613c7d836138e5565b826020820152606060408201526000611a6a6060830184613b52565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf75780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b83811015613d3057815187529582019590820190600101613d14565b509495945050505050565b838152606060208201526000613d546060830185613cff565b9050826040830152949350505050565b600080600060608486031215613d7957600080fd5b835167ffffffffffffffff80821115613d9157600080fd5b613d9d87838801613b97565b9450602086015193506040860151915080821115613dba57600080fd5b50613a8d86828701613b97565b85815260a060208201526000613de060a0830187613cff565b60ff861660408401528281036060840152613dfb8186613b52565b9150508260808301529695505050505050565b848152608060208201526000613e276080830186613cff565b60ff949094166040830152506060015292915050565b600060208284031215613e4f57600080fd5b5051919050565b600060ff821660ff8103613e6c57613e6c613c11565b60010192915050565b848152608060208201526000613e8e6080830186613cff565b60ff851660408401528281036060840152613ea98185613b52565b979650505050505050565b8181038181111561043957610439613c11565b808202811582820484141761043957610439613c11565b8281526000602080830184516020860160005b82811015613f0d57815184529284019290840190600101613ef1565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b606081526000613f436060830186613cff565b65ffffffffffff851660208401528281036040840152610cf98185613b52565b848152608060208201526000613f7c6080830186613cff565b65ffffffffffff851660408401528281036060840152613ea98185613b52565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451613ffd816003860160208901613b2e565b80840190508160038201528451915061401d826004830160208801613b2e565b0160040195945050505050565b60408152600061403d6040830185613b52565b90506001600160a01b03831660208301529392505050565b60008251614067818460208701613b2e565b9190910192915050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611a6a6060830184613b52565b64ffffffffff8181168382160190808211156140d0576140d0613c11565b5092915050565b87815260e0602082015260006140f060e0830189613cff565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526141278185613b52565b9a9950505050505050505050565b60c08152600061414860c0830189613cff565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526141848185613b52565b9998505050505050505050565b600084516141a3818460208901613b2e565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006141e36060830186613b52565b6020830194909452506040015291905056fea2646970667358221220742a2fd45744c41e7d65d12942f110c7afad793e829dbf40f82832658ab5f6a064736f6c63430008180033","sourceMap":"1738:5941:211:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:144;;;;;;;;;;-1:-1:-1;2899:144:211;;;;;:::i;:::-;3032:2;3008:26;;2899:144;;;;-1:-1:-1;;;;;363:55:228;;;345:74;;333:2;318:18;2899:144:211;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:228;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:228;7553:124:211;;;;;;;;;;-1:-1:-1;7553:124:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;3819:837:211:-;;;;;;;;;;-1:-1:-1;3819:837:211;;;;;:::i;:::-;;:::i;:::-;;;4284:25:228;;;4272:2;4257:18;3819:837:211;4138:177:228;1915:129:211;;;;;;;;;;-1:-1:-1;1915:129:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5601:483::-;;;;;;;;;;-1:-1:-1;5601:483:211;;;;;:::i;:::-;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1779:130:211;;;;;;;;;;-1:-1:-1;1779:130:211;;;;;:::i;:::-;;:::i;3049:413::-;;;;;;;;;;-1:-1:-1;3049:413:211;;;;;:::i;:::-;;:::i;4662:545::-;;;;;;:::i;:::-;;:::i;:::-;;2386:266;;;;;;;;;;-1:-1:-1;2386:266:211;;;;;:::i;:::-;;:::i;6090:219::-;;;;;;;;;;-1:-1:-1;6090:219:211;;;;;:::i;:::-;;:::i;5213:382::-;;;;;;;;;;-1:-1:-1;5213:382:211;;;;;:::i;:::-;;:::i;7155:125::-;;;;;;;;;;-1:-1:-1;7155:125:211;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7417:130:211:-;;;;;;;;;;-1:-1:-1;7417:130:211;;;;;:::i;:::-;;:::i;2658:143::-;;;;;;;;;;-1:-1:-1;2658:143:211;;;;;:::i;:::-;2756:37;;;2658:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7553:124:211:-;7613:16;;:::i;:::-;7648:22;7658:11;7648:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;3819:837:211:-;3929:19;3964:24;3991:28;:26;:28::i;:::-;3964:55;-1:-1:-1;4056:16:211;4037:35;;4029:83;;;;-1:-1:-1;;;4029:83:211;;5935:2:228;4029:83:211;;;5917:21:228;5974:2;5954:18;;;5947:30;6013:34;5993:18;;;5986:62;6084:5;6064:18;;;6057:33;6107:19;;4029:83:211;;;;;;;;;4129:8;:6;:8::i;:::-;-1:-1:-1;;;;;4122:21:211;;4157:37;4173:20;4157:15;:37::i;:::-;4196:65;;-1:-1:-1;;;;;6329:55:228;;4196:65:211;;;6311:74:228;6401:18;;;6394:34;;;6284:18;;4196:65:211;;;-1:-1:-1;;4196:65:211;;;;;;;;;;;;;;;;;;;;4122:149;;4196:65;4122:149;;;;;;;;;4196:65;4122:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4122:149:211;;;;;;;;;;;;:::i;:::-;;4295:35;4313:16;4295:17;:35::i;:::-;4281:49;;4340:41;4360:11;4373:7;4340:19;:41::i;:::-;4391:52;4413:11;4426:16;4391:21;:52::i;:::-;4462:25;4482:4;4462:19;:25::i;:::-;4461:26;4453:58;;;;-1:-1:-1;;;4453:58:211;;8342:2:228;4453:58:211;;;8324:21:228;8381:2;8361:18;;;8354:30;8420:21;8400:18;;;8393:49;8459:18;;4453:58:211;8140:343:228;4453:58:211;4521:31;4541:4;4547;4521:19;:31::i;:::-;4562:37;4581:11;4594:4;4562:18;:37::i;:::-;4609:40;4622:16;4640:8;4609:12;:40::i;:::-;3954:702;3819:837;;;;;:::o;1915:129::-;1975:14;2010:27;2025:11;2010:14;:27::i;5601:483::-;5667:20;5717:14;5728:2;5717:10;:14::i;:::-;5703:10;:28;5699:379;;-1:-1:-1;5762:2:211;5601:483;;;:::o;5699:379::-;5800:9;5795:273;5815:2;5811:1;:6;5795:273;;;5859:10;5842:13;5853:1;5842:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;5893:10:211;5873:17;5884:5;:1;5888;5884:5;:::i;:::-;5873:10;:17::i;:::-;:30;5842:61;5838:155;;;5942:5;:1;5946;5942:5;:::i;:::-;5927:20;;5969:5;;5838:155;6032:3;;;;:::i;:::-;;;;5795:273;;;;5601:483;;;:::o;1779:130::-;1838:13;1871:31;1890:11;1871:18;:31::i;3049:413::-;3119:4;3135:20;3158:28;3174:11;3032:2;3008:26;;2899:144;3158:28;3135:51;-1:-1:-1;2756:37:211;;;3196:15;3285:17;:15;:17::i;:::-;-1:-1:-1;;;;;3285:25:211;;3311:7;3285:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3285:34:211;;;;;;;;;;;;;;;;;;;-1:-1:-1;3285:34:211;;;;;;;;-1:-1:-1;;3285:34:211;;;;;;;;;;;;:::i;:::-;;;3281:135;;;3362:17;:15;:17::i;:::-;-1:-1:-1;;;;;3362:25:211;;3388:7;3362:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3362:34:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3352:44;;3320:87;3281:135;3443:12;-1:-1:-1;;;;;3432:23:211;:7;-1:-1:-1;;;;;3432:23:211;;3425:30;;;;;3049:413;;;:::o;4662:545::-;4777:33;4798:11;4777:20;:33::i;:::-;4776:34;4768:90;;;;-1:-1:-1;;;4768:90:211;;9465:2:228;4768:90:211;;;9447:21:228;9504:2;9484:18;;;9477:30;9543:34;9523:18;;;9516:62;9614:13;9594:18;;;9587:41;9645:19;;4768:90:211;9263:407:228;4768:90:211;4876:21;4885:11;4876:8;:21::i;:::-;4868:53;;;;-1:-1:-1;;;4868:53:211;;9877:2:228;4868:53:211;;;9859:21:228;9916:2;9896:18;;;9889:30;9955:21;9935:18;;;9928:49;9994:18;;4868:53:211;9675:343:228;4868:53:211;4931:26;4999:34;5014:11;5027:5;4999:14;:34::i;:::-;5090:110;5143:16;5161:11;5185;5174:23;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5174:23:211;;;;-1:-1:-1;;5174:23:211;;;;;;;;;;5108:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5108:91:211;;;;;;;;;;;;;;;;;;;;5090:17;:110::i;:::-;;4758:449;4662:545;;;:::o;2386:266::-;2460:19;2491:20;2514:17;:15;:17::i;:::-;-1:-1:-1;;;;;2514:25:211;;2540:16;2514:43;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;2514:43:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2623:2;2589:36;-1:-1:-1;;2589:36:211;:55;;;;;;-1:-1:-1;;2386:266:211:o;6090:219::-;6184:21;6193:11;6184:8;:21::i;:::-;6176:60;;;;-1:-1:-1;;;6176:60:211;;10654:2:228;6176:60:211;;;10636:21:228;10693:2;10673:18;;;10666:30;10732:28;10712:18;;;10705:56;10778:18;;6176:60:211;10452:350:228;6176:60:211;6246:56;2756:37;;;6293:8;6246:12;:56::i;:::-;6090:219;;:::o;5213:382::-;5278:21;5287:11;5278:8;:21::i;:::-;5270:52;;;;-1:-1:-1;;;5270:52:211;;11009:2:228;5270:52:211;;;10991:21:228;11048:2;11028:18;;;11021:30;11087:20;11067:18;;;11060:48;11125:18;;5270:52:211;10807:342:228;5270:52:211;5341:33;5362:11;5341:20;:33::i;:::-;5340:34;5332:72;;;;-1:-1:-1;;;5332:72:211;;11356:2:228;5332:72:211;;;11338:21:228;11395:2;11375:18;;;11368:30;11434:27;11414:18;;;11407:55;11479:18;;5332:72:211;11154:349:228;5332:72:211;5415:31;5425:11;5438:7;5415:9;:31::i;:::-;5494:8;:6;:8::i;:::-;-1:-1:-1;;;;;5487:38:211;;5526:11;5487:51;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5487:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5549:39;5570:11;5583:4;5549:20;:39::i;:::-;5213:382;:::o;7155:125::-;7215:7;7241:32;7261:11;7241:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7417:130:211:-;7482:7;7508:32;7528:11;7508:19;:32::i;13270:402:195:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:195;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:195:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;6489:347:211:-;6545:7;6564:25;6592:42;:40;:42::i;:::-;6564:70;;6644:24;6671:50;6699:17;6719:1;6671:19;:50::i;:::-;:54;;6724:1;6671:54;:::i;:::-;6644:81;;6735:61;6755:17;6774:1;6778:16;6735:19;:61::i;1094:186:219:-;1152:10;1177:100;1212:15;1240:9;1257:18;1177:25;:100::i;4730:249:179:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:179;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;11846:2:228;11842:15;;;;-1:-1:-1;;11838:88:228;11826:101;;11952:2;11943:12;;11697:264;4934:25:179;;;;-1:-1:-1;;4934:25:179;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:179;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12095:19:228;;12139:2;12130:12;;11966:182;2594:287:190;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:190;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:190:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:190;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12304:14:228;12297:22;12292:3;12288:32;12276:45;;12346:1;12337:11;;12153:201;4085:25:190;;;;-1:-1:-1;;4085:25:190;;;;;;;;;1198:66;4034:26;:91::i;5941:246:179:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:179;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12095:19:228;;12139:2;12130:12;;11966:182;6315:168:211;6397:79;6418:38;6435:20;6418:16;:38::i;:::-;6458:7;6467:8;6397:20;:79::i;5624:288:195:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:195;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:195;;;;5878:29;;;;;;;;:::i;3297:296:184:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:184;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:184;:64::i;5306:279:179:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:179;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2205:175:211:-;2255:30;2330:42;:40;:42::i;6512:295:179:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:179;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;6982:167:211:-;7044:4;7083:17;:15;:17::i;:::-;:59;;;;;2756:37;;;7083:59;;;4284:25:228;-1:-1:-1;;;;;7083:25:211;;;;;;;4257:18:228;;7083:59:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7067:75:211;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7067:75:211;;;6982:167;-1:-1:-1;;6982:167:211:o;6279:248:195:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:195;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;12691:3:228;12687:16;;;;12705:66;12683:89;12671:102;;12798:1;12789:11;;12546:260;6477:30:195;;;;-1:-1:-1;;6477:30:195;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13367:98:228;13340:18;;3713:52:107;13223:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;7286:125:211:-;7361:7;:5;:7::i;:::-;-1:-1:-1;;;;;7361:12:211;;7374:21;7383:11;7374:8;:21::i;:::-;7361:43;;;;;;;;;;-1:-1:-1;;;;;6329:55:228;;;7361:43:211;;;6311:74:228;6401:18;;;6394:34;;;6284:18;;7361:43:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7286:125;;:::o;7183:249:179:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:179;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12304:14:228;12297:22;12292:3;12288:32;12276:45;;12346:1;12337:11;;12153:201;4071:290:179;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:195:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:195;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:195:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:195;;;;-1:-1:-1;17879:370:195;;;-1:-1:-1;;;;;17879:370:195:o;5147:257:196:-;5258:16;;;5199:22;5258:16;;;;;;;;;5281:13;5297:64;1269:66;5229:45;5345:1;1398:66;5297:26;:64::i;:::-;5375:23;;;5147:257;-1:-1:-1;;;5147:257:196:o;2640:388:181:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:181;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:181;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:181;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:181:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:181;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:181;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12095:19:228;;12139:2;12130:12;;11966:182;4646:27:181;;;;-1:-1:-1;;4646:27:181;;;;;;;;;-1:-1:-1;;;4595:26:181;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;6842:134:211:-;6882:17;6931:37;:35;:37::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:195:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:195;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:195;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:195;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:195;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:195;-1:-1:-1;;16961:760:195:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;4058:247:196;4159:16;;;4105:17;4159:16;;;;;;;;;4182:13;4198:64;1269:66;4130:45;4246:1;1398:66;4198:26;:64::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12095:19:228;;12139:2;12130:12;;11966:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12095:19:228;;12139:2;12130:12;;11966:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;22541:12:228;22580:15;;;45340:92:45;;;22562:34:228;22632:15;;;22612:18;;;22605:43;22684:15;;22664:18;;;22657:43;22504:18;;45340:92:45;22335:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;22884:25:228;;;22957:12;22945:25;;22925:18;;;22918:53;22857:18;;45581:74:45;22711:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;24822:79:228;;2092:30:124;;;24810:92:228;2092:30:124;;24918:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:228;;;4257:18;;7664:67:24;4138:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:190;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:190;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:228:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:228;;14:180;-1:-1:-1;14:180:228:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:228;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:228;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1419:777;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:228;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:228;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:228;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:228:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:228;3037:15;-1:-1:-1;;3033:88:228;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:228:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:228;3925:18;;3912:32;;-1:-1:-1;3995:2:228;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4320:235::-;4466:2;4451:18;;4478:37;4508:6;4478:37;:::i;:::-;4524:25;;;4320:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:390::-;5416:6;5424;5477:2;5465:9;5456:7;5452:23;5448:32;5445:52;;;5493:1;5490;5483:12;5445:52;5529:9;5516:23;5506:33;;5590:2;5579:9;5575:18;5562:32;5617:18;5609:6;5606:30;5603:50;;;5649:1;5646;5639:12;5603:50;5672;5714:7;5705:6;5694:9;5690:22;5672:50;:::i;:::-;5662:60;;;5338:390;;;;;:::o;6439:250::-;6524:1;6534:113;6548:6;6545:1;6542:13;6534:113;;;6624:11;;;6618:18;6605:11;;;6598:39;6570:2;6563:10;6534:113;;;-1:-1:-1;;6681:1:228;6663:16;;6656:27;6439:250::o;6694:329::-;6735:3;6773:5;6767:12;6800:6;6795:3;6788:19;6816:76;6885:6;6878:4;6873:3;6869:14;6862:4;6855:5;6851:16;6816:76;:::i;:::-;6937:2;6925:15;-1:-1:-1;;6921:88:228;6912:98;;;;7012:4;6908:109;;6694:329;-1:-1:-1;;6694:329:228:o;7028:320::-;7235:6;7224:9;7217:25;7278:2;7273;7262:9;7258:18;7251:30;7198:4;7298:44;7338:2;7327:9;7323:18;7315:6;7298:44;:::i;7353:442::-;7406:5;7459:3;7452:4;7444:6;7440:17;7436:27;7426:55;;7477:1;7474;7467:12;7426:55;7506:6;7500:13;7537:49;7553:32;7582:2;7553:32;:::i;7537:49::-;7611:2;7602:7;7595:19;7657:3;7650:4;7645:2;7637:6;7633:15;7629:26;7626:35;7623:55;;;7674:1;7671;7664:12;7623:55;7687:77;7761:2;7754:4;7745:7;7741:18;7734:4;7726:6;7722:17;7687:77;:::i;7800:335::-;7879:6;7932:2;7920:9;7911:7;7907:23;7903:32;7900:52;;;7948:1;7945;7938:12;7900:52;7981:9;7975:16;8014:18;8006:6;8003:30;8000:50;;;8046:1;8043;8036:12;8000:50;8069:60;8121:7;8112:6;8101:9;8097:22;8069:60;:::i;8488:184::-;-1:-1:-1;;;8537:1:228;8530:88;8637:4;8634:1;8627:15;8661:4;8658:1;8651:15;8677:125;8742:9;;;8763:10;;;8760:36;;;8776:18;;:::i;8807:195::-;8846:3;-1:-1:-1;;8870:5:228;8867:77;8864:103;;8947:18;;:::i;:::-;-1:-1:-1;8994:1:228;8983:13;;8807:195::o;9007:251::-;9077:6;9130:2;9118:9;9109:7;9105:23;9101:32;9098:52;;;9146:1;9143;9136:12;9098:52;9178:9;9172:16;9197:31;9222:5;9197:31;:::i;10023:424::-;10245:6;10234:9;10227:25;10261:37;10291:6;10261:37;:::i;:::-;10334:6;10329:2;10318:9;10314:18;10307:34;10377:2;10372;10361:9;10357:18;10350:30;10208:4;10397:44;10437:2;10426:9;10422:18;10414:6;10397:44;:::i;11508:184::-;-1:-1:-1;;;11557:1:228;11550:88;11657:4;11654:1;11647:15;11681:4;11678:1;11671:15;12811:407;12894:5;12934;12928:12;12976:4;12969:5;12965:16;12959:23;13001:66;13093:2;13089;13085:11;13076:20;;13119:1;13111:6;13108:13;13105:107;;;13199:2;13193;13183:6;13180:1;13176:14;13173:1;13169:22;13165:31;13161:2;13157:40;13153:49;13144:58;;13105:107;;;;12811:407;;;:::o;13476:439::-;13529:3;13567:5;13561:12;13594:6;13589:3;13582:19;13620:4;13649;13644:3;13640:14;13633:21;;13688:4;13681:5;13677:16;13711:1;13721:169;13735:6;13732:1;13729:13;13721:169;;;13796:13;;13784:26;;13830:12;;;;13865:15;;;;13757:1;13750:9;13721:169;;;-1:-1:-1;13906:3:228;;13476:439;-1:-1:-1;;;;;13476:439:228:o;13920:468::-;14220:6;14209:9;14202:25;14263:2;14258;14247:9;14243:18;14236:30;14183:4;14283:56;14335:2;14324:9;14320:18;14312:6;14283:56;:::i;:::-;14275:64;;14375:6;14370:2;14359:9;14355:18;14348:34;13920:468;;;;;;:::o;14393:655::-;14535:6;14543;14551;14604:2;14592:9;14583:7;14579:23;14575:32;14572:52;;;14620:1;14617;14610:12;14572:52;14653:9;14647:16;14682:18;14723:2;14715:6;14712:14;14709:34;;;14739:1;14736;14729:12;14709:34;14762:60;14814:7;14805:6;14794:9;14790:22;14762:60;:::i;:::-;14752:70;;14862:2;14851:9;14847:18;14841:25;14831:35;;14912:2;14901:9;14897:18;14891:25;14875:41;;14941:2;14931:8;14928:16;14925:36;;;14957:1;14954;14947:12;14925:36;;14980:62;15034:7;15023:8;15012:9;15008:24;14980:62;:::i;15053:709::-;15423:6;15412:9;15405:25;15466:3;15461:2;15450:9;15446:18;15439:31;15386:4;15493:57;15545:3;15534:9;15530:19;15522:6;15493:57;:::i;:::-;15598:4;15590:6;15586:17;15581:2;15570:9;15566:18;15559:45;15652:9;15644:6;15640:22;15635:2;15624:9;15620:18;15613:50;15680:32;15705:6;15697;15680:32;:::i;:::-;15672:40;;;15749:6;15743:3;15732:9;15728:19;15721:35;15053:709;;;;;;;;:::o;15767:548::-;16091:6;16080:9;16073:25;16134:3;16129:2;16118:9;16114:18;16107:31;16054:4;16155:57;16207:3;16196:9;16192:19;16184:6;16155:57;:::i;:::-;16260:4;16248:17;;;;16243:2;16228:18;;16221:45;-1:-1:-1;16297:2:228;16282:18;16275:34;16147:65;15767:548;-1:-1:-1;;15767:548:228:o;16320:184::-;16390:6;16443:2;16431:9;16422:7;16418:23;16414:32;16411:52;;;16459:1;16456;16449:12;16411:52;-1:-1:-1;16482:16:228;;16320:184;-1:-1:-1;16320:184:228:o;16509:175::-;16546:3;16590:4;16583:5;16579:16;16619:4;16610:7;16607:17;16604:43;;16627:18;;:::i;:::-;16676:1;16663:15;;16509:175;-1:-1:-1;;16509:175:228:o;16689:604::-;16998:6;16987:9;16980:25;17041:3;17036:2;17025:9;17021:18;17014:31;16961:4;17068:57;17120:3;17109:9;17105:19;17097:6;17068:57;:::i;:::-;17173:4;17165:6;17161:17;17156:2;17145:9;17141:18;17134:45;17227:9;17219:6;17215:22;17210:2;17199:9;17195:18;17188:50;17255:32;17280:6;17272;17255:32;:::i;:::-;17247:40;16689:604;-1:-1:-1;;;;;;;16689:604:228:o;17625:128::-;17692:9;;;17713:11;;;17710:37;;;17727:18;;:::i;17758:168::-;17831:9;;;17862;;17879:15;;;17873:22;;17859:37;17849:71;;17900:18;;:::i;17931:640::-;18182:6;18177:3;18170:19;18152:3;18208:2;18241;18236:3;18232:12;18273:6;18267:13;18338:2;18330:6;18326:15;18359:1;18369:175;18383:6;18380:1;18377:13;18369:175;;;18446:13;;18432:28;;18482:14;;;;18519:15;;;;18405:1;18398:9;18369:175;;;-1:-1:-1;18560:5:228;;17931:640;-1:-1:-1;;;;;;;17931:640:228:o;18576:184::-;-1:-1:-1;;;18625:1:228;18618:88;18725:4;18722:1;18715:15;18749:4;18746:1;18739:15;18765:511;19016:2;19005:9;18998:21;18979:4;19042:56;19094:2;19083:9;19079:18;19071:6;19042:56;:::i;:::-;19146:14;19138:6;19134:27;19129:2;19118:9;19114:18;19107:55;19210:9;19202:6;19198:22;19193:2;19182:9;19178:18;19171:50;19238:32;19263:6;19255;19238:32;:::i;19281:616::-;19592:6;19581:9;19574:25;19635:3;19630:2;19619:9;19615:18;19608:31;19555:4;19662:57;19714:3;19703:9;19699:19;19691:6;19662:57;:::i;:::-;19767:14;19759:6;19755:27;19750:2;19739:9;19735:18;19728:55;19831:9;19823:6;19819:22;19814:2;19803:9;19799:18;19792:50;19859:32;19884:6;19876;19859:32;:::i;19902:925::-;20351:66;20343:6;20339:79;20334:3;20327:92;20309:3;20438;20470:2;20466:1;20461:3;20457:11;20450:23;20502:6;20496:13;20518:74;20585:6;20581:1;20576:3;20572:11;20565:4;20557:6;20553:17;20518:74;:::i;:::-;20620:6;20615:3;20611:16;20601:26;;20655:2;20651:1;20647:2;20643:10;20636:22;20689:6;20683:13;20667:29;;20705:75;20771:8;20767:1;20763:2;20759:10;20752:4;20744:6;20740:17;20705:75;:::i;:::-;20800:17;20819:1;20796:25;;19902:925;-1:-1:-1;;;;;19902:925:228:o;20832:339::-;21009:2;20998:9;20991:21;20972:4;21029:44;21069:2;21058:9;21054:18;21046:6;21029:44;:::i;:::-;21021:52;;-1:-1:-1;;;;;21113:6:228;21109:55;21104:2;21093:9;21089:18;21082:83;20832:339;;;;;:::o;21176:287::-;21305:3;21343:6;21337:13;21359:66;21418:6;21413:3;21406:4;21398:6;21394:17;21359:66;:::i;:::-;21441:16;;;;;21176:287;-1:-1:-1;;21176:287:228:o;21687:464::-;21934:66;21926:6;21922:79;21911:9;21904:98;22038:6;22033:2;22022:9;22018:18;22011:34;22081:2;22076;22065:9;22061:18;22054:30;21885:4;22101:44;22141:2;22130:9;22126:18;22118:6;22101:44;:::i;22156:174::-;22223:12;22255:10;;;22267;;;22251:27;;22290:11;;;22287:37;;;22304:18;;:::i;:::-;22287:37;22156:174;;;;:::o;22982:901::-;23407:6;23396:9;23389:25;23450:3;23445:2;23434:9;23430:18;23423:31;23370:4;23477:57;23529:3;23518:9;23514:19;23506:6;23477:57;:::i;:::-;23582:4;23570:17;;23565:2;23550:18;;23543:45;23607:12;23655:15;;;23650:2;23635:18;;23628:43;23708:15;;23702:3;23687:19;;23680:44;23755:3;23740:19;;23733:35;;;23805:22;;;23799:3;23784:19;;23777:51;23845:32;23809:6;23862;23845:32;:::i;:::-;23837:40;22982:901;-1:-1:-1;;;;;;;;;;22982:901:228:o;23888:788::-;24253:3;24242:9;24235:22;24216:4;24280:57;24332:3;24321:9;24317:19;24309:6;24280:57;:::i;:::-;24385:4;24377:6;24373:17;24368:2;24357:9;24353:18;24346:45;24439:14;24431:6;24427:27;24422:2;24411:9;24407:18;24400:55;24503:12;24495:6;24491:25;24486:2;24475:9;24471:18;24464:53;24554:6;24548:3;24537:9;24533:19;24526:35;24610:9;24602:6;24598:22;24592:3;24581:9;24577:19;24570:51;24638:32;24663:6;24655;24638:32;:::i;:::-;24630:40;23888:788;-1:-1:-1;;;;;;;;;23888:788:228:o;24941:530::-;25126:3;25164:6;25158:13;25180:66;25239:6;25234:3;25227:4;25219:6;25215:17;25180:66;:::i;:::-;25315:2;25311:15;;;;-1:-1:-1;;25307:88:228;25268:16;;;;25293:103;;;25423:2;25412:14;;25405:30;;;;25462:2;25451:14;;24941:530;-1:-1:-1;;24941:530:228:o;25476:359::-;25679:2;25668:9;25661:21;25642:4;25699:44;25739:2;25728:9;25724:18;25716:6;25699:44;:::i;:::-;25774:2;25759:18;;25752:34;;;;-1:-1:-1;25817:2:228;25802:18;25795:34;25691:52;25476:359;-1:-1:-1;25476:359:228:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentLevel(uint256)":"3d0854ae","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xb84abf73925cc09d3b4485612cdf6bdfb41f43e396a7cab318a092155e7c7d61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5675b9f3eac7f784fdc8dc86ab0525f4c7655fffea6bbe3058353ff6e1d9811f\",\"dweb:/ipfs/QmQHeYZixt3FtBNKrGU1xj3vxc5Cv1KeARxWX7XmNdC1Nh\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be\",\"dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f\",\"dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716\",\"dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x9bfd55b66c63b1f0fee65eed47dc4f15e99488f7f4923f08221dee4dd50d3765\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://253edb2df8f17afc7e8a9822350d36b0acbfa0f21f6eadb89a5fa73ac331a93e\",\"dweb:/ipfs/QmP785ioQpxikiCQhgE6sf2k32EZ1anUYHu9ZCyGxiYKA7\"]},\"src/utils.sol\":{\"keccak256\":\"0xf346e5e55e21a06c5337887dbecefccdd3e3f001c7b461875bb69242e1bda1c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9dae95bc79f3143fdaef0c92d0ffca7521609c12319aee4fb2f994ba548e279c\",\"dweb:/ipfs/QmbbhHcQcnGWVmfnbg9vLdAnjCA38BAJq3omoLEF4o5kbx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xb84abf73925cc09d3b4485612cdf6bdfb41f43e396a7cab318a092155e7c7d61","urls":["bzz-raw://5675b9f3eac7f784fdc8dc86ab0525f4c7655fffea6bbe3058353ff6e1d9811f","dweb:/ipfs/QmQHeYZixt3FtBNKrGU1xj3vxc5Cv1KeARxWX7XmNdC1Nh"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff","urls":["bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be","dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383","urls":["bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f","dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e","urls":["bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716","dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0x9bfd55b66c63b1f0fee65eed47dc4f15e99488f7f4923f08221dee4dd50d3765","urls":["bzz-raw://253edb2df8f17afc7e8a9822350d36b0acbfa0f21f6eadb89a5fa73ac331a93e","dweb:/ipfs/QmP785ioQpxikiCQhgE6sf2k32EZ1anUYHu9ZCyGxiYKA7"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf346e5e55e21a06c5337887dbecefccdd3e3f001c7b461875bb69242e1bda1c5","urls":["bzz-raw://9dae95bc79f3143fdaef0c92d0ffca7521609c12319aee4fb2f994ba548e279c","dweb:/ipfs/QmbbhHcQcnGWVmfnbg9vLdAnjCA38BAJq3omoLEF4o5kbx"],"license":"MIT"}},"version":1},"id":211} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506142b5806100206000396000f3fe6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc57806323801570116100e1578063238015701461022b57806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd5780631ecb393f1461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e6101483660046138fe565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b610186366004613917565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b63660046138fe565b61043f565b604051610162919061398d565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613ac8565b61045f565b604051908152602001610162565b34801561021757600080fd5b506101fd6102263660046138fe565b6106c1565b34801561023757600080fd5b5061024b6102463660046138fe565b61073f565b6040516101629190613b21565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b3660046138fe565b61074a565b34801561029c57600080fd5b5061018b6102ab3660046138fe565b610755565b6102c36102be366004613b34565b610881565b005b3480156102d157600080fd5b506101fd6102e03660046138fe565b6109f9565b3480156102f157600080fd5b506102c3610300366004613b71565b610a8e565b34801561031157600080fd5b506102c36103203660046138fe565b610aff565b34801561033157600080fd5b5061014e6103403660046138fe565b610c3c565b34801561035157600080fd5b5061014e610c47565b34801561036657600080fd5b506101fd6103753660046138fe565b610c51565b34801561038657600080fd5b506101fd6103953660046138fe565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6104476138a8565b61043982610c5c565b600061045a610d0e565b905090565b60008061046a610d40565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610c47565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610d73565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401613c08565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106249190810190613c66565b5061062e816109f9565b915061063a8286610dc0565b6106448282610e8f565b61064d84610f0e565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001610fb3565b6106af828561106c565b6106b981846110eb565b509392505050565b60006106cd601361111e565b82106106db57506014919050565b60005b601481101561073957826106f18261111e565b1115801561071057508261070e610709836001613cb1565b61111e565b115b1561072757610720816001613cb1565b9150610739565b8061073181613cc4565b9150506106de565b50919050565b60006104398261119a565b600061043982611244565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d6112d6565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190613cde565b60015b15610862576107f06112d6565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190613cde565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a826112e0565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611372565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e838361142e565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401613cfb565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a400000000000000000000000000000000000000000000000000000000179052611517565b5050505050565b600080610a046112d6565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190613cde565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611372565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff8316826110eb565b5050565b610b0881611372565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d816112e0565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b610bb58160016115c5565b610bc781674563918244f40000611644565b610bcf610c47565b6001600160a01b031663f9d175ed826040518263ffffffff1660e01b8152600401610bfc91815260200190565b600060405180830381600087803b158015610c1657600080fd5b505af1158015610c2a573d6000803e3d6000fd5b50505050610c398160016116df565b50565b600061043982611763565b600061045a611800565b60006104398261180a565b610c646138a8565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610c9a57610c9a613d23565b602090810291909101015260008080610cf37f7462554400000000000000000000000053746174730000000000000000000000857ee108002020012020202020000000000000000000000000000000000000000061189c565b925092509250610d0483838361196c565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610d3d5750335b90565b600080610d4b6119e4565b90506000610d5a826000611a4c565b610d65906001613cb1565b905061043982600083611afd565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611bcd565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610df657610df6613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610e55919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611c45565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610ec557610ec5613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610e5591815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610f4757610f47613d23565b60209081029190910101526000610f9f7f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611cfa565b9050610fab8160f81c90565b949350505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610fe957610fe9613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004e616d6545786973747300000000000060001b8260008560405160200161103791151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611c45565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106110a2576110a2613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610e5591815260200190565b610afb6111177f4368617261637465727300000000000000000000000000000000000000000000611db7565b8383611e04565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b8160008151811061115a5761115a613d23565b60209081029190910101526000610fab7f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611cfa565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106111d3576111d3613d23565b6020908102919091010152600061122c7f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611cfa565b905060f881901c6002811115610fab57610fab613959565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061127d5761127d613d23565b60209081029190910101526000610fab7f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611cfa565b600061045a6119e4565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061131957611319613d23565b60209081029190910101526000610f9f7f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611cfa565b600061137c6112d6565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa1580156113e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140d9190613cde565b6001600160a01b031661141e610450565b6001600160a01b03161492915050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061146457611464613d23565b6020908102919091010152610e8a7f746255440000000000000000000000005374617473000000000000000000000082600285818111156114a7576114a7613959565b6040516020016114e2919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611c45565b606060008061152d61152885613d39565b611e56565b91509150816000801b03611593576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052610fab8285611f26565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115fb576115fb613d23565b602002602001018181525050610e8a7f746255440000000000000000000000005374617473000000000000000000000060001b826007856040516020016114e291815260200190565b61164c612001565b6001600160a01b03166340c10f1961166384610c3c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b1580156116c357600080fd5b505af11580156116d7573d6000803e3d6000fd5b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061171557611715613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610e5591151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061179c5761179c613d23565b602090810291909101015260006117f57f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611cfa565b60601c949350505050565b600061045a61200b565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061184357611843613d23565b60209081029190910101526000610fab7f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611cfa565b60606000606060006118ac61200b565b9050306001600160a01b038216036118d5576118c987878761204a565b93509350935050611963565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061191e908a908a908a90600401613dc5565b600060405180830381865afa15801561193b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118c99190810190613dee565b93509350939050565b6119746138a8565b61197d84612152565b60e0890181905260c0890182905260a0890183905260808901849052606089018590528860208101604082018860028111156119bb576119bb613959565b60028111156119cc576119cc613959565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611a427f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611cfa565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611a9157611a91613d23565b6020026020010181815250508260001b81600181518110611ab457611ab4613d23565b60209081029190910101526000611af47f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611cfa565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611b3e57611b3e613d23565b6020026020010181815250508260001b81600181518110611b6157611b61613d23565b602002602001018181525050611bc77f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611baa91815260200190565b60408051601f19818403018152919052630100080160dd1b611c45565b50505050565b6000611bdb60706010613cb1565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611c4f61200b565b9050306001600160a01b03821603611c7357611c6e86868686866121c0565b6116d7565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611cc09089908990899089908990600401613e51565b600060405180830381600087803b158015611cda57600080fd5b505af1158015611cee573d6000803e3d6000fd5b50505050505050505050565b600080611d0561200b565b9050306001600160a01b03821603611d2b57611d23868686866121d5565b915050610fab565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611d76908990899089908990600401613e98565b602060405180830381865afa158015611d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d239190613ec7565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611bcd565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611e3d57611e3d613d23565b602002602001018181525050611bc78482600085612202565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611eaf57611eaf613d23565b602090810291909101015260008080611f087f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e2402002004000000000000000000000000000000000000000000000000000061189c565b925092509250611f198383836122b3565b9550955050505050915091565b60606000611f32611800565b90506001600160a01b0381163003611f73576000611f5a611f51610d0e565b600087876122cb565b9350905080611f6c57611f6c83612406565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611fba9087908790600401613c08565b6000604051808303816000875af1158015611fd9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fab9190810190613c66565b600061045a61240e565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680612045573391505090565b919050565b606060006060600061205b8561246c565b905061206887878361248f565b93506000612075866124c8565b90508015612147576120878888612505565b935066ffffffffffffff841667ffffffffffffffff8111156120ab576120ab613a03565b6040519080825280601f01601f1916602001820160405280156120d5576020820181803683370190505b5092506020830160005b828160ff1610156121445760006120f78b8b84612518565b90506000612114888460ff166028026038011c64ffffffffff1690565b90506121238260008387612598565b61212d8185613cb1565b93505050808061213c90613ee0565b9150506120df565b50505b505093509350939050565b60008060008060008060008061216c896000016020015190565b60408a015160608b0151919950975060f81c600281111561218f5761218f613959565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f285856121cf8487612664565b85612695565b6000611af46121e48686612939565b60ff858116601b0360080285901c166121fd8587612664565b61298f565b600061220c61200b565b9050306001600160a01b0382160361222f5761222a858585856129e0565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061227a908890889088908890600401613eff565b600060405180830381600087803b15801561229457600080fd5b505af11580156122a8573d6000803e3d6000fd5b505050505050505050565b6000806122bf85612a1b565b90969095509350505050565b600060606000806122db86612a30565b90925090506001600160a01b03821661232c57856122f887612ad4565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190613c08565b8061233b5761233b8689612c02565b86156123a7577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061238f82612c4e565b90506123a48261239f8b84613cb1565b612cc7565b50505b60006123b38760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146123eb576123e688888488612d63565b6123f7565b6123f788888488612ddb565b90999098509650505050505050565b805160208201fd5b604080516000808252602082019092526000611a427f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360017e79070001141414141414000000000000000000000000000000000000000000611cfa565b6000600861247c60026020613f3e565b6124869190613f51565b9190911c919050565b6060816000036124ae5750604080516020810190915260008152611c3e565b60006124ba8585612939565b9050611af481600085612e3c565b600060086001806124db60026020613f3e565b6124e59190613f3e565b6124ef9190613f3e565b6124f99190613f51565b8260ff911c1692915050565b6000611c3e6125148484612e5f565b5490565b6000838360405160200161252d929190613f68565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b821561261f57602083106125c2576020830484019350602083816125be576125be613fa4565b0692505b821561261f5760208390036000818410156125e55750600019600884021c6125ef565b50600019600882021c5b8554600886021b818451168219821617845250818411612610575050611bc7565b50600194909401939182900391015b5b602082106126415783548152600190930192601f1990910190602001612620565b8115611bc7576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761268b60ff601b83900360080287901c1683613cb1565b9150600101612669565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361271f57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161271293929190613fba565b60405180910390a2611bc7565b600061272b8585612939565b9050600061273886612eb5565b905060005b815181101561280d57600082828151811061275a5761275a613d23565b602002602001015190506127866004826affffffffffffffffffffff1916612f3e90919063ffffffff16565b15612804576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906127d1908b908b908b908b90600401613fed565b600060405180830381600087803b1580156127eb57600080fd5b505af11580156127ff573d6000803e3d6000fd5b505050505b5060010161273d565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161284293929190613fba565b60405180910390a261285d828565ffffffffffff1685612f5c565b60005b815181101561293057600082828151811061287d5761287d613d23565b602002602001015190506128a96008826affffffffffffffffffffff1916612f3e90919063ffffffff16565b15612927576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba8721906128f4908b908b908b908b90600401613fed565b600060405180830381600087803b15801561290e57600080fd5b505af1158015612922573d6000803e3d6000fd5b505050505b50600101612860565b50505050505050565b6000828260405160200161294e929190613f68565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6000602082106129b5576020820484019350602082816129b1576129b1613fa4565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b60006129ec8585612505565b90506000612a09828560ff166028026038011c64ffffffffff1690565b90506116d78686866000858888612f72565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612a6a57612a6a613d23565b602090810291909101015260008080612ac37f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061204a565b925092509250611f198383836133ac565b606081601081901b6000612ae7836133b8565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612b4257612b3d7fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133cf565b612b79565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612ba057612b9b836133cf565b612bd7565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612be993929190614026565b6040516020818303038152906040529350505050919050565b612c0c8282613455565b610afb57612c1982612ad4565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e99291906140b4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612c8757612c87613d23565b60209081029190910101526000610fab7f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6121d5565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612cfd57612cfd613d23565b602002602001018181525050610e8a7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612d4691815260200190565b60408051601f19818403018152919052630100080160dd1b6121c0565b60006060836001600160a01b03166000612d7e8589896134b3565b604051612d8b91906140df565b60006040518083038185875af1925050503d8060008114612dc8576040519150601f19603f3d011682016040523d82523d6000602084013e612dcd565b606091505b509097909650945050505050565b60006060836001600160a01b0316612df48488886134b3565b604051612e0191906140df565b600060405180830381855af49150503d8060008114612dc8576040519150601f19603f3d011682016040523d82523d6000602084013e612dcd565b60405160208101601f19603f84840101166040528282526106b985858584612598565b60008282604051602001612e74929190613f68565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612eef57612eef613d23565b60209081029190910101526000612f277f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836134e2565b9050610fab612f39826000845161351c565b6135aa565b60008160ff1682612f4f8560581c90565b1660ff1614905092915050565b610e8a83838351612f6d8560200190565b6135bb565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614613032577f74620000000000000000000000000000000000000000000000000000000000008788604051602001612ff091815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e99392916004016140fb565b600061304d828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836130669190613f3e565b6130709190613cb1565b9050808214158015613092575081613088868861413c565b64ffffffffff1614155b156130e2576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff161115613133576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b600061314084898461367a565b9050600061314d8b612eb5565b905060005b815181101561321857600082828151811061316f5761316f613d23565b6020026020010151905061319b6010826affffffffffffffffffffff1916612f3e90919063ffffffff16565b1561320f57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016131dc9796959493929190614161565b600060405180830381600087803b1580156131f657600080fd5b505af115801561320a573d6000803e3d6000fd5b505050505b50600101613152565b5064ffffffffff881660005b8a60ff168160ff1610156132575761324b878260ff166028026038011c64ffffffffff1690565b90910190600101613224565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d604051613292969594939291906141bf565b60405180910390a2508284146132b35760006132ae8c8c612e5f565b839055505b60006132c08c8c8c612518565b90506132d4818a64ffffffffff1689612f5c565b5060005b815181101561339e5760008282815181106132f5576132f5613d23565b602002602001015190506133216020826affffffffffffffffffffff1916612f3e90919063ffffffff16565b1561339557606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016133629796959493929190614161565b600060405180830381600087803b15801561337c57600080fd5b505af1158015613390573d6000803e3d6000fd5b505050505b506001016132d8565b505050505050505050505050565b6000806122bf85613748565b60006133c660706010613cb1565b9190911b919050565b606060005b6010811015613425576fffffffffffffffffffffffffffffffff198316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613425576001016133d4565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610fab565b60006134a37f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613764565b80611c3e5750611c3e8383613764565b60608383836040516020016134ca9392919061421b565b60405160208183030381529060405290509392505050565b6060610fab6134f2858585612518565b6000613517856135028989612505565b9060ff166028026038011c64ffffffffff1690565b612e3c565b60008183118061352c5750835182115b15613569578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e99392919061425a565b602084016135778482613cb1565b905060006135858585613f3e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611c3e836015600061382d565b821561363557602083106135e5576020830484019350602083816135e1576135e1613fa4565b0692505b82156136355760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613626575050611bc7565b50600194909401939182900391015b5b602082106136575780518455600190930192601f1990910190602001613636565b8115611bc7576000600019600884021c8554835182191691161785555050505050565b600064ffffffffff8211156136be576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff168085106136f057808503820191506136f8565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612a29565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061379d5761379d613d23565b602002602001018181525050826001600160a01b031660001b816001815181106137c9576137c9613d23565b602090810291909101015260006138217f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006121d5565b9050611af48160f81c90565b6060600061383b8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161386157613861613fa4565b04905060405193506020840160208202810160405281855260005b8281101561389c578451871c82529387019360209091019060010161387c565b50505050509392505050565b6040518061010001604052806000815260200160008152602001600060028111156138d5576138d5613959565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561391057600080fd5b5035919050565b60006020828403121561392957600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c3e57600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110610c3957634e487b7160e01b600052602160045260246000fd5b815181526020808301519082015260408201516101008201906139af8161396f565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114610c3957600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613a4257613a42613a03565b604052919050565b600067ffffffffffffffff821115613a6457613a64613a03565b50601f01601f191660200190565b600082601f830112613a8357600080fd5b8135613a96613a9182613a4a565b613a19565b818152846020838601011115613aab57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613add57600080fd5b8335613ae8816139ee565b925060208401359150604084013567ffffffffffffffff811115613b0b57600080fd5b613b1786828701613a72565b9150509250925092565b60208101613b2e8361396f565b91905290565b600080600060608486031215613b4957600080fd5b8335925060208401359150604084013560038110613b6657600080fd5b809150509250925092565b60008060408385031215613b8457600080fd5b82359150602083013567ffffffffffffffff811115613ba257600080fd5b613bae85828601613a72565b9150509250929050565b60005b83811015613bd3578181015183820152602001613bbb565b50506000910152565b60008151808452613bf4816020860160208601613bb8565b601f01601f19169290920160200192915050565b828152604060208201526000610fab6040830184613bdc565b600082601f830112613c3257600080fd5b8151613c40613a9182613a4a565b818152846020838601011115613c5557600080fd5b610fab826020830160208701613bb8565b600060208284031215613c7857600080fd5b815167ffffffffffffffff811115613c8f57600080fd5b610fab84828501613c21565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439613c9b565b60006000198203613cd757613cd7613c9b565b5060010190565b600060208284031215613cf057600080fd5b8151611c3e816139ee565b838152613d078361396f565b826020820152606060408201526000611af46060830184613bdc565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613d815780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b83811015613dba57815187529582019590820190600101613d9e565b509495945050505050565b838152606060208201526000613dde6060830185613d89565b9050826040830152949350505050565b600080600060608486031215613e0357600080fd5b835167ffffffffffffffff80821115613e1b57600080fd5b613e2787838801613c21565b9450602086015193506040860151915080821115613e4457600080fd5b50613b1786828701613c21565b85815260a060208201526000613e6a60a0830187613d89565b60ff861660408401528281036060840152613e858186613bdc565b9150508260808301529695505050505050565b848152608060208201526000613eb16080830186613d89565b60ff949094166040830152506060015292915050565b600060208284031215613ed957600080fd5b5051919050565b600060ff821660ff8103613ef657613ef6613c9b565b60010192915050565b848152608060208201526000613f186080830186613d89565b60ff851660408401528281036060840152613f338185613bdc565b979650505050505050565b8181038181111561043957610439613c9b565b808202811582820484141761043957610439613c9b565b8281526000602080830184516020860160005b82811015613f9757815184529284019290840190600101613f7b565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b606081526000613fcd6060830186613d89565b65ffffffffffff851660208401528281036040840152610d048185613bdc565b8481526080602082015260006140066080830186613d89565b65ffffffffffff851660408401528281036060840152613f338185613bdc565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451614087816003860160208901613bb8565b8084019050816003820152845191506140a7826004830160208801613bb8565b0160040195945050505050565b6040815260006140c76040830185613bdc565b90506001600160a01b03831660208301529392505050565b600082516140f1818460208701613bb8565b9190910192915050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611af46060830184613bdc565b64ffffffffff81811683821601908082111561415a5761415a613c9b565b5092915050565b87815260e06020820152600061417a60e0830189613d89565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526141b18185613bdc565b9a9950505050505050505050565b60c0815260006141d260c0830189613d89565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a084015261420e8185613bdc565b9998505050505050505050565b6000845161422d818460208901613bb8565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b60608152600061426d6060830186613bdc565b6020830194909452506040015291905056fea2646970667358221220cc2c999bb62d1901c8a36d533ae7900d907ca296c84edf127300cdf207faff5864736f6c63430008180033","sourceMap":"1738:5989:198:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc57806323801570116100e1578063238015701461022b57806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd5780631ecb393f1461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e6101483660046138fe565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b610186366004613917565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b63660046138fe565b61043f565b604051610162919061398d565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613ac8565b61045f565b604051908152602001610162565b34801561021757600080fd5b506101fd6102263660046138fe565b6106c1565b34801561023757600080fd5b5061024b6102463660046138fe565b61073f565b6040516101629190613b21565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b3660046138fe565b61074a565b34801561029c57600080fd5b5061018b6102ab3660046138fe565b610755565b6102c36102be366004613b34565b610881565b005b3480156102d157600080fd5b506101fd6102e03660046138fe565b6109f9565b3480156102f157600080fd5b506102c3610300366004613b71565b610a8e565b34801561031157600080fd5b506102c36103203660046138fe565b610aff565b34801561033157600080fd5b5061014e6103403660046138fe565b610c3c565b34801561035157600080fd5b5061014e610c47565b34801561036657600080fd5b506101fd6103753660046138fe565b610c51565b34801561038657600080fd5b506101fd6103953660046138fe565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6104476138a8565b61043982610c5c565b600061045a610d0e565b905090565b60008061046a610d40565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610c47565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610d73565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401613c08565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106249190810190613c66565b5061062e816109f9565b915061063a8286610dc0565b6106448282610e8f565b61064d84610f0e565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001610fb3565b6106af828561106c565b6106b981846110eb565b509392505050565b60006106cd601361111e565b82106106db57506014919050565b60005b601481101561073957826106f18261111e565b1115801561071057508261070e610709836001613cb1565b61111e565b115b1561072757610720816001613cb1565b9150610739565b8061073181613cc4565b9150506106de565b50919050565b60006104398261119a565b600061043982611244565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d6112d6565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190613cde565b60015b15610862576107f06112d6565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190613cde565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a826112e0565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611372565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e838361142e565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401613cfb565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a400000000000000000000000000000000000000000000000000000000179052611517565b5050505050565b600080610a046112d6565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190613cde565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611372565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff8316826110eb565b5050565b610b0881611372565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d816112e0565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b610bb58160016115c5565b610bc781674563918244f40000611644565b610bcf610c47565b6001600160a01b031663f9d175ed826040518263ffffffff1660e01b8152600401610bfc91815260200190565b600060405180830381600087803b158015610c1657600080fd5b505af1158015610c2a573d6000803e3d6000fd5b50505050610c398160016116df565b50565b600061043982611763565b600061045a611800565b60006104398261180a565b610c646138a8565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610c9a57610c9a613d23565b602090810291909101015260008080610cf37f7462554400000000000000000000000053746174730000000000000000000000857ee108002020012020202020000000000000000000000000000000000000000061189c565b925092509250610d0483838361196c565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610d3d5750335b90565b600080610d4b6119e4565b90506000610d5a826000611a4c565b610d65906001613cb1565b905061043982600083611afd565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611bcd565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610df657610df6613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610e55919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611c45565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610ec557610ec5613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610e5591815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610f4757610f47613d23565b60209081029190910101526000610f9f7f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611cfa565b9050610fab8160f81c90565b949350505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610fe957610fe9613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004e616d6545786973747300000000000060001b8260008560405160200161103791151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611c45565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106110a2576110a2613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610e5591815260200190565b610afb6111177f4368617261637465727300000000000000000000000000000000000000000000611db7565b8383611e04565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b8160008151811061115a5761115a613d23565b60209081029190910101526000610fab7f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611cfa565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106111d3576111d3613d23565b6020908102919091010152600061122c7f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611cfa565b905060f881901c6002811115610fab57610fab613959565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061127d5761127d613d23565b60209081029190910101526000610fab7f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611cfa565b600061045a6119e4565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061131957611319613d23565b60209081029190910101526000610f9f7f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611cfa565b600061137c6112d6565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa1580156113e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140d9190613cde565b6001600160a01b031661141e610450565b6001600160a01b03161492915050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061146457611464613d23565b6020908102919091010152610e8a7f746255440000000000000000000000005374617473000000000000000000000082600285818111156114a7576114a7613959565b6040516020016114e2919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611c45565b606060008061152d61152885613d39565b611e56565b91509150816000801b03611593576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052610fab8285611f26565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115fb576115fb613d23565b602002602001018181525050610e8a7f746255440000000000000000000000005374617473000000000000000000000060001b826007856040516020016114e291815260200190565b61164c612001565b6001600160a01b03166340c10f1961166384610c3c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b1580156116c357600080fd5b505af11580156116d7573d6000803e3d6000fd5b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061171557611715613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610e5591151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061179c5761179c613d23565b602090810291909101015260006117f57f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611cfa565b60601c949350505050565b600061045a61200b565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061184357611843613d23565b60209081029190910101526000610fab7f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611cfa565b60606000606060006118ac61200b565b9050306001600160a01b038216036118d5576118c987878761204a565b93509350935050611963565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061191e908a908a908a90600401613dc5565b600060405180830381865afa15801561193b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118c99190810190613dee565b93509350939050565b6119746138a8565b61197d84612152565b60e0890181905260c0890182905260a0890183905260808901849052606089018590528860208101604082018860028111156119bb576119bb613959565b60028111156119cc576119cc613959565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611a427f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611cfa565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611a9157611a91613d23565b6020026020010181815250508260001b81600181518110611ab457611ab4613d23565b60209081029190910101526000611af47f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611cfa565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611b3e57611b3e613d23565b6020026020010181815250508260001b81600181518110611b6157611b61613d23565b602002602001018181525050611bc77f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611baa91815260200190565b60408051601f19818403018152919052630100080160dd1b611c45565b50505050565b6000611bdb60706010613cb1565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611c4f61200b565b9050306001600160a01b03821603611c7357611c6e86868686866121c0565b6116d7565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611cc09089908990899089908990600401613e51565b600060405180830381600087803b158015611cda57600080fd5b505af1158015611cee573d6000803e3d6000fd5b50505050505050505050565b600080611d0561200b565b9050306001600160a01b03821603611d2b57611d23868686866121d5565b915050610fab565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611d76908990899089908990600401613e98565b602060405180830381865afa158015611d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d239190613ec7565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611bcd565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611e3d57611e3d613d23565b602002602001018181525050611bc78482600085612202565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611eaf57611eaf613d23565b602090810291909101015260008080611f087f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e2402002004000000000000000000000000000000000000000000000000000061189c565b925092509250611f198383836122b3565b9550955050505050915091565b60606000611f32611800565b90506001600160a01b0381163003611f73576000611f5a611f51610d0e565b600087876122cb565b9350905080611f6c57611f6c83612406565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611fba9087908790600401613c08565b6000604051808303816000875af1158015611fd9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fab9190810190613c66565b600061045a61240e565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680612045573391505090565b919050565b606060006060600061205b8561246c565b905061206887878361248f565b93506000612075866124c8565b90508015612147576120878888612505565b935066ffffffffffffff841667ffffffffffffffff8111156120ab576120ab613a03565b6040519080825280601f01601f1916602001820160405280156120d5576020820181803683370190505b5092506020830160005b828160ff1610156121445760006120f78b8b84612518565b90506000612114888460ff166028026038011c64ffffffffff1690565b90506121238260008387612598565b61212d8185613cb1565b93505050808061213c90613ee0565b9150506120df565b50505b505093509350939050565b60008060008060008060008061216c896000016020015190565b60408a015160608b0151919950975060f81c600281111561218f5761218f613959565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f285856121cf8487612664565b85612695565b6000611af46121e48686612939565b60ff858116601b0360080285901c166121fd8587612664565b61298f565b600061220c61200b565b9050306001600160a01b0382160361222f5761222a858585856129e0565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061227a908890889088908890600401613eff565b600060405180830381600087803b15801561229457600080fd5b505af11580156122a8573d6000803e3d6000fd5b505050505050505050565b6000806122bf85612a1b565b90969095509350505050565b600060606000806122db86612a30565b90925090506001600160a01b03821661232c57856122f887612ad4565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190613c08565b8061233b5761233b8689612c02565b86156123a7577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061238f82612c4e565b90506123a48261239f8b84613cb1565b612cc7565b50505b60006123b38760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146123eb576123e688888488612d63565b6123f7565b6123f788888488612ddb565b90999098509650505050505050565b805160208201fd5b604080516000808252602082019092526000611a427f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360017e79070001141414141414000000000000000000000000000000000000000000611cfa565b6000600861247c60026020613f3e565b6124869190613f51565b9190911c919050565b6060816000036124ae5750604080516020810190915260008152611c3e565b60006124ba8585612939565b9050611af481600085612e3c565b600060086001806124db60026020613f3e565b6124e59190613f3e565b6124ef9190613f3e565b6124f99190613f51565b8260ff911c1692915050565b6000611c3e6125148484612e5f565b5490565b6000838360405160200161252d929190613f68565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b821561261f57602083106125c2576020830484019350602083816125be576125be613fa4565b0692505b821561261f5760208390036000818410156125e55750600019600884021c6125ef565b50600019600882021c5b8554600886021b818451168219821617845250818411612610575050611bc7565b50600194909401939182900391015b5b602082106126415783548152600190930192601f1990910190602001612620565b8115611bc7576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761268b60ff601b83900360080287901c1683613cb1565b9150600101612669565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361271f57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161271293929190613fba565b60405180910390a2611bc7565b600061272b8585612939565b9050600061273886612eb5565b905060005b815181101561280d57600082828151811061275a5761275a613d23565b602002602001015190506127866004826affffffffffffffffffffff1916612f3e90919063ffffffff16565b15612804576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906127d1908b908b908b908b90600401613fed565b600060405180830381600087803b1580156127eb57600080fd5b505af11580156127ff573d6000803e3d6000fd5b505050505b5060010161273d565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161284293929190613fba565b60405180910390a261285d828565ffffffffffff1685612f5c565b60005b815181101561293057600082828151811061287d5761287d613d23565b602002602001015190506128a96008826affffffffffffffffffffff1916612f3e90919063ffffffff16565b15612927576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba8721906128f4908b908b908b908b90600401613fed565b600060405180830381600087803b15801561290e57600080fd5b505af1158015612922573d6000803e3d6000fd5b505050505b50600101612860565b50505050505050565b6000828260405160200161294e929190613f68565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6000602082106129b5576020820484019350602082816129b1576129b1613fa4565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b60006129ec8585612505565b90506000612a09828560ff166028026038011c64ffffffffff1690565b90506116d78686866000858888612f72565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612a6a57612a6a613d23565b602090810291909101015260008080612ac37f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061204a565b925092509250611f198383836133ac565b606081601081901b6000612ae7836133b8565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612b4257612b3d7fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133cf565b612b79565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612ba057612b9b836133cf565b612bd7565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612be993929190614026565b6040516020818303038152906040529350505050919050565b612c0c8282613455565b610afb57612c1982612ad4565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e99291906140b4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612c8757612c87613d23565b60209081029190910101526000610fab7f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6121d5565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612cfd57612cfd613d23565b602002602001018181525050610e8a7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612d4691815260200190565b60408051601f19818403018152919052630100080160dd1b6121c0565b60006060836001600160a01b03166000612d7e8589896134b3565b604051612d8b91906140df565b60006040518083038185875af1925050503d8060008114612dc8576040519150601f19603f3d011682016040523d82523d6000602084013e612dcd565b606091505b509097909650945050505050565b60006060836001600160a01b0316612df48488886134b3565b604051612e0191906140df565b600060405180830381855af49150503d8060008114612dc8576040519150601f19603f3d011682016040523d82523d6000602084013e612dcd565b60405160208101601f19603f84840101166040528282526106b985858584612598565b60008282604051602001612e74929190613f68565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612eef57612eef613d23565b60209081029190910101526000612f277f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836134e2565b9050610fab612f39826000845161351c565b6135aa565b60008160ff1682612f4f8560581c90565b1660ff1614905092915050565b610e8a83838351612f6d8560200190565b6135bb565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614613032577f74620000000000000000000000000000000000000000000000000000000000008788604051602001612ff091815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e99392916004016140fb565b600061304d828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836130669190613f3e565b6130709190613cb1565b9050808214158015613092575081613088868861413c565b64ffffffffff1614155b156130e2576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff161115613133576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b600061314084898461367a565b9050600061314d8b612eb5565b905060005b815181101561321857600082828151811061316f5761316f613d23565b6020026020010151905061319b6010826affffffffffffffffffffff1916612f3e90919063ffffffff16565b1561320f57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016131dc9796959493929190614161565b600060405180830381600087803b1580156131f657600080fd5b505af115801561320a573d6000803e3d6000fd5b505050505b50600101613152565b5064ffffffffff881660005b8a60ff168160ff1610156132575761324b878260ff166028026038011c64ffffffffff1690565b90910190600101613224565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d604051613292969594939291906141bf565b60405180910390a2508284146132b35760006132ae8c8c612e5f565b839055505b60006132c08c8c8c612518565b90506132d4818a64ffffffffff1689612f5c565b5060005b815181101561339e5760008282815181106132f5576132f5613d23565b602002602001015190506133216020826affffffffffffffffffffff1916612f3e90919063ffffffff16565b1561339557606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016133629796959493929190614161565b600060405180830381600087803b15801561337c57600080fd5b505af1158015613390573d6000803e3d6000fd5b505050505b506001016132d8565b505050505050505050505050565b6000806122bf85613748565b60006133c660706010613cb1565b9190911b919050565b606060005b6010811015613425576fffffffffffffffffffffffffffffffff198316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613425576001016133d4565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610fab565b60006134a37f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613764565b80611c3e5750611c3e8383613764565b60608383836040516020016134ca9392919061421b565b60405160208183030381529060405290509392505050565b6060610fab6134f2858585612518565b6000613517856135028989612505565b9060ff166028026038011c64ffffffffff1690565b612e3c565b60008183118061352c5750835182115b15613569578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e99392919061425a565b602084016135778482613cb1565b905060006135858585613f3e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611c3e836015600061382d565b821561363557602083106135e5576020830484019350602083816135e1576135e1613fa4565b0692505b82156136355760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613626575050611bc7565b50600194909401939182900391015b5b602082106136575780518455600190930192601f1990910190602001613636565b8115611bc7576000600019600884021c8554835182191691161785555050505050565b600064ffffffffff8211156136be576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff168085106136f057808503820191506136f8565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612a29565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061379d5761379d613d23565b602002602001018181525050826001600160a01b031660001b816001815181106137c9576137c9613d23565b602090810291909101015260006138217f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006121d5565b9050611af48160f81c90565b6060600061383b8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161386157613861613fa4565b04905060405193506020840160208202810160405281855260005b8281101561389c578451871c82529387019360209091019060010161387c565b50505050509392505050565b6040518061010001604052806000815260200160008152602001600060028111156138d5576138d5613959565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561391057600080fd5b5035919050565b60006020828403121561392957600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c3e57600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110610c3957634e487b7160e01b600052602160045260246000fd5b815181526020808301519082015260408201516101008201906139af8161396f565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114610c3957600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613a4257613a42613a03565b604052919050565b600067ffffffffffffffff821115613a6457613a64613a03565b50601f01601f191660200190565b600082601f830112613a8357600080fd5b8135613a96613a9182613a4a565b613a19565b818152846020838601011115613aab57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613add57600080fd5b8335613ae8816139ee565b925060208401359150604084013567ffffffffffffffff811115613b0b57600080fd5b613b1786828701613a72565b9150509250925092565b60208101613b2e8361396f565b91905290565b600080600060608486031215613b4957600080fd5b8335925060208401359150604084013560038110613b6657600080fd5b809150509250925092565b60008060408385031215613b8457600080fd5b82359150602083013567ffffffffffffffff811115613ba257600080fd5b613bae85828601613a72565b9150509250929050565b60005b83811015613bd3578181015183820152602001613bbb565b50506000910152565b60008151808452613bf4816020860160208601613bb8565b601f01601f19169290920160200192915050565b828152604060208201526000610fab6040830184613bdc565b600082601f830112613c3257600080fd5b8151613c40613a9182613a4a565b818152846020838601011115613c5557600080fd5b610fab826020830160208701613bb8565b600060208284031215613c7857600080fd5b815167ffffffffffffffff811115613c8f57600080fd5b610fab84828501613c21565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439613c9b565b60006000198203613cd757613cd7613c9b565b5060010190565b600060208284031215613cf057600080fd5b8151611c3e816139ee565b838152613d078361396f565b826020820152606060408201526000611af46060830184613bdc565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613d815780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b83811015613dba57815187529582019590820190600101613d9e565b509495945050505050565b838152606060208201526000613dde6060830185613d89565b9050826040830152949350505050565b600080600060608486031215613e0357600080fd5b835167ffffffffffffffff80821115613e1b57600080fd5b613e2787838801613c21565b9450602086015193506040860151915080821115613e4457600080fd5b50613b1786828701613c21565b85815260a060208201526000613e6a60a0830187613d89565b60ff861660408401528281036060840152613e858186613bdc565b9150508260808301529695505050505050565b848152608060208201526000613eb16080830186613d89565b60ff949094166040830152506060015292915050565b600060208284031215613ed957600080fd5b5051919050565b600060ff821660ff8103613ef657613ef6613c9b565b60010192915050565b848152608060208201526000613f186080830186613d89565b60ff851660408401528281036060840152613f338185613bdc565b979650505050505050565b8181038181111561043957610439613c9b565b808202811582820484141761043957610439613c9b565b8281526000602080830184516020860160005b82811015613f9757815184529284019290840190600101613f7b565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b606081526000613fcd6060830186613d89565b65ffffffffffff851660208401528281036040840152610d048185613bdc565b8481526080602082015260006140066080830186613d89565b65ffffffffffff851660408401528281036060840152613f338185613bdc565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451614087816003860160208901613bb8565b8084019050816003820152845191506140a7826004830160208801613bb8565b0160040195945050505050565b6040815260006140c76040830185613bdc565b90506001600160a01b03831660208301529392505050565b600082516140f1818460208701613bb8565b9190910192915050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611af46060830184613bdc565b64ffffffffff81811683821601908082111561415a5761415a613c9b565b5092915050565b87815260e06020820152600061417a60e0830189613d89565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526141b18185613bdc565b9a9950505050505050505050565b60c0815260006141d260c0830189613d89565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a084015261420e8185613bdc565b9998505050505050505050565b6000845161422d818460208901613bb8565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b60608152600061426d6060830186613bdc565b6020830194909452506040015291905056fea2646970667358221220cc2c999bb62d1901c8a36d533ae7900d907ca296c84edf127300cdf207faff5864736f6c63430008180033","sourceMap":"1738:5989:198:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:144;;;;;;;;;;-1:-1:-1;2899:144:198;;;;;:::i;:::-;3032:2;3008:26;;2899:144;;;;-1:-1:-1;;;;;363:55:202;;;345:74;;333:2;318:18;2899:144:198;;;;;;;;2331:198:117;;;;;;;;;;-1:-1:-1;2331:198:117;;;;;:::i;:::-;;:::i;:::-;;;932:14:202;;925:22;907:41;;895:2;880:18;2331:198:117;767:187:202;7601:124:198;;;;;;;;;;-1:-1:-1;7601:124:198;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:117:-;;;;;;;;;;;;;:::i;3819:837:198:-;;;;;;;;;;-1:-1:-1;3819:837:198;;;;;:::i;:::-;;:::i;:::-;;;4284:25:202;;;4272:2;4257:18;3819:837:198;4138:177:202;5640:492:198;;;;;;;;;;-1:-1:-1;5640:492:198;;;;;:::i;:::-;;:::i;1915:129::-;;;;;;;;;;-1:-1:-1;1915:129:198;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:117:-;;;;;;;;;;-1:-1:-1;3800:14:117;-1:-1:-1;;3796:25:117;3783:39;1616:110;1262:113;1779:130:198;;;;;;;;;;-1:-1:-1;1779:130:198;;;;;:::i;:::-;;:::i;3049:413::-;;;;;;;;;;-1:-1:-1;3049:413:198;;;;;:::i;:::-;;:::i;4662:545::-;;;;;;:::i;:::-;;:::i;:::-;;2386:266;;;;;;;;;;-1:-1:-1;2386:266:198;;;;;:::i;:::-;;:::i;6138:219::-;;;;;;;;;;-1:-1:-1;6138:219:198;;;;;:::i;:::-;;:::i;5213:421::-;;;;;;;;;;-1:-1:-1;5213:421:198;;;;;:::i;:::-;;:::i;7203:125::-;;;;;;;;;;-1:-1:-1;7203:125:198;;;;;:::i;:::-;;:::i;1942:98:117:-;;;;;;;;;;;;;:::i;7465:130:198:-;;;;;;;;;;-1:-1:-1;7465:130:198;;;;;:::i;:::-;;:::i;2658:143::-;;;;;;;;;;-1:-1:-1;2658:143:198;;;;;:::i;:::-;2756:37;;;2658:143;2331:198:117;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:117;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:117:o;7601:124:198:-;7661:16;;:::i;:::-;7696:22;7706:11;7696:9;:22::i;1262:113:117:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;3819:837:198:-;3929:19;3964:24;3991:28;:26;:28::i;:::-;3964:55;-1:-1:-1;4056:16:198;4037:35;;4029:83;;;;-1:-1:-1;;;4029:83:198;;5933:2:202;4029:83:198;;;5915:21:202;5972:2;5952:18;;;5945:30;6011:34;5991:18;;;5984:62;6082:5;6062:18;;;6055:33;6105:19;;4029:83:198;;;;;;;;;4129:8;:6;:8::i;:::-;-1:-1:-1;;;;;4122:21:198;;4157:37;4173:20;4157:15;:37::i;:::-;4196:65;;-1:-1:-1;;;;;6327:55:202;;4196:65:198;;;6309:74:202;6399:18;;;6392:34;;;6282:18;;4196:65:198;;;-1:-1:-1;;4196:65:198;;;;;;;;;;;;;;;;;;;;4122:149;;4196:65;4122:149;;;;;;;;;4196:65;4122:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4122:149:198;;;;;;;;;;;;:::i;:::-;;4295:35;4313:16;4295:17;:35::i;:::-;4281:49;;4340:41;4360:11;4373:7;4340:19;:41::i;:::-;4391:52;4413:11;4426:16;4391:21;:52::i;:::-;4462:25;4482:4;4462:19;:25::i;:::-;4461:26;4453:58;;;;-1:-1:-1;;;4453:58:198;;8340:2:202;4453:58:198;;;8322:21:202;8379:2;8359:18;;;8352:30;8418:21;8398:18;;;8391:49;8457:18;;4453:58:198;8138:343:202;4453:58:198;4521:31;4541:4;4547;4521:19;:31::i;:::-;4562:37;4581:11;4594:4;4562:18;:37::i;:::-;4609:40;4622:16;4640:8;4609:12;:40::i;:::-;3954:702;3819:837;;;;;:::o;5640:492::-;5715:20;5765:14;5776:2;5765:10;:14::i;:::-;5751:10;:28;5747:379;;-1:-1:-1;5810:2:198;5640:492;;;:::o;5747:379::-;5848:9;5843:273;5863:2;5859:1;:6;5843:273;;;5907:10;5890:13;5901:1;5890:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;5941:10:198;5921:17;5932:5;:1;5936;5932:5;:::i;:::-;5921:10;:17::i;:::-;:30;5890:61;5886:155;;;5990:5;:1;5994;5990:5;:::i;:::-;5975:20;;6017:5;;5886:155;6080:3;;;;:::i;:::-;;;;5843:273;;;;5640:492;;;:::o;1915:129::-;1975:14;2010:27;2025:11;2010:14;:27::i;1779:130::-;1838:13;1871:31;1890:11;1871:18;:31::i;3049:413::-;3119:4;3135:20;3158:28;3174:11;3032:2;3008:26;;2899:144;3158:28;3135:51;-1:-1:-1;2756:37:198;;;3196:15;3285:17;:15;:17::i;:::-;-1:-1:-1;;;;;3285:25:198;;3311:7;3285:34;;;;;;;;;;;;;4284:25:202;;4272:2;4257:18;;4138:177;3285:34:198;;;;;;;;;;;;;;;;;;;-1:-1:-1;3285:34:198;;;;;;;;-1:-1:-1;;3285:34:198;;;;;;;;;;;;:::i;:::-;;;3281:135;;;3362:17;:15;:17::i;:::-;-1:-1:-1;;;;;3362:25:198;;3388:7;3362:34;;;;;;;;;;;;;4284:25:202;;4272:2;4257:18;;4138:177;3362:34:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3352:44;;3320:87;3281:135;3443:12;-1:-1:-1;;;;;3432:23:198;:7;-1:-1:-1;;;;;3432:23:198;;3425:30;;;;;3049:413;;;:::o;4662:545::-;4777:33;4798:11;4777:20;:33::i;:::-;4776:34;4768:90;;;;-1:-1:-1;;;4768:90:198;;9463:2:202;4768:90:198;;;9445:21:202;9502:2;9482:18;;;9475:30;9541:34;9521:18;;;9514:62;9612:13;9592:18;;;9585:41;9643:19;;4768:90:198;9261:407:202;4768:90:198;4876:21;4885:11;4876:8;:21::i;:::-;4868:53;;;;-1:-1:-1;;;4868:53:198;;9875:2:202;4868:53:198;;;9857:21:202;9914:2;9894:18;;;9887:30;9953:21;9933:18;;;9926:49;9992:18;;4868:53:198;9673:343:202;4868:53:198;4931:26;4999:34;5014:11;5027:5;4999:14;:34::i;:::-;5090:110;5143:16;5161:11;5185;5174:23;;;;;;4284:25:202;;4272:2;4257:18;;4138:177;5174:23:198;;;;-1:-1:-1;;5174:23:198;;;;;;;;;;5108:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5108:91:198;;;;;;;;;;;;;;;;;;;;5090:17;:110::i;:::-;;4758:449;4662:545;;;:::o;2386:266::-;2460:19;2491:20;2514:17;:15;:17::i;:::-;-1:-1:-1;;;;;2514:25:198;;2540:16;2514:43;;;;;;;;;;;;;4284:25:202;;4272:2;4257:18;;4138:177;2514:43:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2623:2;2589:36;-1:-1:-1;;2589:36:198;:55;;;;;;-1:-1:-1;;2386:266:198:o;6138:219::-;6232:21;6241:11;6232:8;:21::i;:::-;6224:60;;;;-1:-1:-1;;;6224:60:198;;10651:2:202;6224:60:198;;;10633:21:202;10690:2;10670:18;;;10663:30;10729:28;10709:18;;;10702:56;10775:18;;6224:60:198;10449:350:202;6224:60:198;6294:56;2756:37;;;6341:8;6294:12;:56::i;:::-;6138:219;;:::o;5213:421::-;5278:21;5287:11;5278:8;:21::i;:::-;5270:52;;;;-1:-1:-1;;;5270:52:198;;11006:2:202;5270:52:198;;;10988:21:202;11045:2;11025:18;;;11018:30;11084:20;11064:18;;;11057:48;11122:18;;5270:52:198;10804:342:202;5270:52:198;5341:33;5362:11;5341:20;:33::i;:::-;5340:34;5332:72;;;;-1:-1:-1;;;5332:72:198;;11353:2:202;5332:72:198;;;11335:21:202;11392:2;11372:18;;;11365:30;11431:27;11411:18;;;11404:55;11476:18;;5332:72:198;11151:349:202;5332:72:198;5414:30;5429:11;5442:1;5414:14;:30::i;:::-;5454:31;5464:11;5477:7;5454:9;:31::i;:::-;5533:8;:6;:8::i;:::-;-1:-1:-1;;;;;5526:38:198;;5565:11;5526:51;;;;;;;;;;;;;4284:25:202;;4272:2;4257:18;;4138:177;5526:51:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5588:39;5609:11;5622:4;5588:20;:39::i;:::-;5213:421;:::o;7203:125::-;7263:7;7289:32;7309:11;7289:19;:32::i;1942:98:117:-;1981:7;2003:32;:30;:32::i;7465:130:198:-;7530:7;7556:32;7576:11;7556:19;:32::i;13270:402:183:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:183;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:183:o;2992:383:117:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:117;3325:45;2992:383;:::o;6537:347:198:-;6593:7;6612:25;6640:42;:40;:42::i;:::-;6612:70;;6692:24;6719:50;6747:17;6767:1;6719:19;:50::i;:::-;:54;;6772:1;6719:54;:::i;:::-;6692:81;;6783:61;6803:17;6822:1;6826:16;6783:19;:61::i;1094:186:200:-;1152:10;1177:100;1212:15;1240:9;1257:18;1177:25;:100::i;4730:249:167:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:167;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;11843:2:202;11839:15;;;;-1:-1:-1;;11835:88:202;11823:101;;11949:2;11940:12;;11694:264;4934:25:167;;;;-1:-1:-1;;4934:25:167;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:167;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;2594:287:178;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:178;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:178:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:178;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12301:14:202;12294:22;12289:3;12285:32;12273:45;;12343:1;12334:11;;12150:201;4085:25:178;;;;-1:-1:-1;;4085:25:178;;;;;;;;;1198:66;4034:26;:91::i;5941:246:167:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:167;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;6363:168:198;6445:79;6466:38;6483:20;6466:16;:38::i;:::-;6506:7;6515:8;6445:20;:79::i;3297:296:172:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:172;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:172;:64::i;5624:288:183:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:183;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:183;;;;5878:29;;;;;;;;:::i;5306:279:167:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:167;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2205:175:198:-;2255:30;2330:42;:40;:42::i;6512:295:167:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:167;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;7030:167:198:-;7092:4;7131:17;:15;:17::i;:::-;:59;;;;;2756:37;;;7131:59;;;4284:25:202;-1:-1:-1;;;;;7131:25:198;;;;;;;4257:18:202;;7131:59:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7115:75:198;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7115:75:198;;;7030:167;-1:-1:-1;;7030:167:198:o;6279:248:183:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:183;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;12688:3:202;12684:16;;;;12702:66;12680:89;12668:102;;12795:1;12786:11;;12543:260;6477:30:183;;;;-1:-1:-1;;6477:30:183;;;;;;;;;1439:66;6426:26;:96::i;3318:662:101:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13364:98:202;13337:18;;3713:52:101;13220:248:202;3668:97:101;1759:4:22;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:101;3900:8;3936;3883:4;:92::i;12697:243:183:-;12792:16;;;12806:1;12792:16;;;;;;;;;12763:26;;12792:16;;;;;;;;;;;-1:-1:-1;12792:16:183;12763:45;;12829:8;12814:9;12824:1;12814:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;12844:91;1310:66;1294:83;;12881:9;12892:1;12913:5;12895:25;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;7334:125:198;7409:7;:5;:7::i;:::-;-1:-1:-1;;;;;7409:12:198;;7422:21;7431:11;7422:8;:21::i;:::-;7409:43;;;;;;;;;;-1:-1:-1;;;;;6327:55:202;;;7409:43:198;;;6309:74:202;6399:18;;;6392:34;;;6282:18;;7409:43:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7334:125;;:::o;7183:249:167:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:167;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12301:14:202;12294:22;12289:3;12285:32;12273:45;;12343:1;12334:11;;12150:201;4071:290:167;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:167;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:167:o;4048:97:117:-;4089:7;4111:29;:27;:29::i;10773:294:183:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:183;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:45:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:45;-1:-1:-1;;;;;15578:30:45;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:45;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:45;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:183:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:183;;;;-1:-1:-1;17879:370:183;;;-1:-1:-1;;;;;17879:370:183:o;5147:257:184:-;5258:16;;;5199:22;5258:16;;;;;;;;;5281:13;5297:64;1269:66;5229:45;5345:1;1398:66;5297:26;:64::i;:::-;5375:23;;;5147:257;-1:-1:-1;;;5147:257:184:o;2640:388:169:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:169;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:169;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:169;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:169:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:169;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:169;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;4646:27:169;;;;-1:-1:-1;;4646:27:169;;;;;;;;;-1:-1:-1;;;4595:26:169;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:118:-;1133:10;1262:26;438:6;451:5:40;1262:26:118;:::i;:::-;-1:-1:-1;;1244:13:118;;:45;;451:5:40;1208:31:118;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:118;;;;;;:::o;10761:455:45:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:45;-1:-1:-1;;;;;10984:30:45;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:45;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:45;-1:-1:-1;;;;;17998:30:45;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:45;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:89:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:88:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:88;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:127:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:127;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:101:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:101;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:101;-1:-1:-1;2409:177:101;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:101;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:101;;;;;;;;;;;;:::i;6890:134:198:-;6930:17;6979:37;:35;:37::i;1836:227:45:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:45;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:45:o;32759:1315:44:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:44;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:23;;;33532:33:44;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:44;-1:-1:-1;33518:47:44;-1:-1:-1;894:4:39;884:15;;33573:21:44;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:44;33808:25;:14;33831:1;7070:16:23;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:44;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:183:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:22;35423:4;35409:27;35403:34;;35277:170;17276:26:183;35409:27:22;;;35403:34;35409:27;;;35403:34;17268:35:183;;-1:-1:-1;35403:34:22;-1:-1:-1;17382:33:183;;17374:42;;;;;;;;:::i;:::-;35409:27:22;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:183;;;;17366:50;;35403:34:22;;;;-1:-1:-1;35403:34:22;-1:-1:-1;35403:34:22;;-1:-1:-1;35403:34:22;-1:-1:-1;16961:760:183;-1:-1:-1;;16961:760:183:o;23107:355:44:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:24;:27;579:1:51;4322:44:24;4288:79;;;4275:93;36635:63:44;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:45:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:45;-1:-1:-1;;;;;11771:30:45;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:45;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:127:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:127;-1:-1:-1;;;;8363:236:127:o;1761:1386:115:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:115;-1:-1:-1;;;;;;2067:27:115;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:118;2955:46;;696:18:138;2954:74:118;2432:22:115;2515:26;2954:74:118;2515:13:115;:26::i;:::-;2490:51;-1:-1:-1;2549:50:115;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:40;2637:44:118;;2539:148;2681:23:115;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:115;-1:-1:-1;;;;;;;1761:1386:115:o;348:217:136:-;551:6;545:13;538:4;530:6;526:17;519:40;4058:247:184;4159:16;;;4105:17;4159:16;;;;;;;;;4182:13;4198:64;1269:66;4130:45;4246:1;1398:66;4198:26;:64::i;4598:171:24:-;4672:7;579:1:51;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:24;;;;;4598:171;-1:-1:-1;4598:171:24:o;48823:360:44:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:44;;;;;;;;;-1:-1:-1;48986:9:44;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:24:-;5451:7;579:1:51;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:24;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:24:o;53939:303:44:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:43;;4605:137;52742:274:44;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:43:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:51;804:25:52;;782:48;6806:135:43;;;-1:-1:-1;;;579:1:51;804:25:52;;782:48;6806:135:43;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:43;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:43;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:51;804:25:52;;782:48;8389:20:43;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:43;;;;:::o;51823:242:44:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:24;4323:19;:27;;;579:1:51;4322:44:24;4288:79;;;4275:93;52003:32:44;;:::i;:::-;;-1:-1:-1;51990:3:44;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:53;17798:4:44;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:25;;;;;17851:54:44;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:44;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:53;18455:4:44;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:25;;;;;18507:53:44;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:44;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:44;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:44:o;8945:812:43:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:43;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:44:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:44;24551:49;24403:106;24582:17;7070:16:23;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:44;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:127:-;35423:4:22;35409:27;;35403:34;35409:27;;;35403:34;8028:19:127;;8173:26;8147:53;;7963:242;;;:::o;5928:433:133:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:133;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:118:-;3550:13;3620:10;451:5:40;2637:44:118;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:118;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:118;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:102:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:126:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:126;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:126;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:126;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;5279:27:126;;;;-1:-1:-1;;5279:27:126;;;;;;;;;-1:-1:-1;;;5230:24:126;:91::i;5594:317:117:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:117;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:117;;;;-1:-1:-1;5594:317:117;-1:-1:-1;;;;;5594:317:117:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:117;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5042:669:43;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:43;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:44:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:44;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:44:o;3658:342:49:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:49;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:25:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:43:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::39;884:15;;758:151;1098:24:43;1055:5;:68::i;44254:4001:44:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;44775:25:44;;;;-1:-1:-1;;44775:25:44;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:23;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:44;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:44;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;22538:12:202;22577:15;;;45340:92:44;;;22559:34:202;22629:15;;;22609:18;;;22602:43;22681:15;;22661:18;;;22654:43;22501:18;;45340:92:44;22332:371:202;45221:218:44;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;22881:25:202;;;22954:12;22942:25;;22922:18;;;22915:53;22854:18;;45581:74:44;22708:266:202;45522:140:44;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:53;46104:4:44;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:25;;;;-1:-1:-1;;;;;46158:55:44;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:44;;46014:486;;;-1:-1:-1;46558:32:44;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:23;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:44;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:43;;;-1:-1:-1;47216:248:44;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:53;47858:4:44;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:25;;;;-1:-1:-1;;;;;47911:54:44;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:44;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:133:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:118:-;3228:7;3292:26;438:6;451:5:40;3292:26:118;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:118:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:118;;3261:1:22;3257:13;;3253:24;2007:42:118;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;24819:79:202;;2092:30:118;;;24807:92:202;2092:30:118;;24915:12:202;;;;2092:30:118;;;875:21:22;;;2092:30:118;2142:39;760:164:22;955:327:102;1036:4;1178:56;696:18:138;578:36:118;2955:46;;2954:74;1227:6:102;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:117:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;37180:522:44:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:23;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:44;37440:12;:257::i;2003:574:42:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:42;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:42:o;40103:220:55:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;1489:2340:43:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:51;804:25:52;;782:48;2208:18:43;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:43;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:43;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:51;804:25:52;;782:48;3761:21:43;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:43;;;;:::o;7468:1525:23:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:202;;;4257:18;;7664:67:23;4138:177:202;7618:120:23;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:23;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:23;;;;;:::o;7448:223:133:-;35423:4:22;35409:27;;35403:34;35409:27;;;35403:34;7564:35:133;;;;;;7513:14;;7631:33;;7623:42;6862:97:178;4006:378:130;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:130;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:130;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:178;6862:97;2681:1129:57;2801:22;2831:21;2855;:11;2997:3:42;2975:25;;2901:104;2855:21:57;2831:45;-1:-1:-1;692:17:42;3238:38;;2882:20:57;3044:11;3238:38:42;3044:11:57;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:202:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:202;;14:180;-1:-1:-1;14:180:202:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:202;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:202;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1419:777;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:202;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:202;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:202;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:202:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:202;3037:15;-1:-1:-1;;3033:88:202;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:202:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:202;3925:18;;3912:32;;-1:-1:-1;3995:2:202;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4687:234::-;4832:2;4817:18;;4844:37;4874:6;4844:37;:::i;:::-;4890:25;;;4687:234;:::o;4926:405::-;5016:6;5024;5032;5085:2;5073:9;5064:7;5060:23;5056:32;5053:52;;;5101:1;5098;5091:12;5053:52;5137:9;5124:23;5114:33;;5194:2;5183:9;5179:18;5166:32;5156:42;;5248:2;5237:9;5233:18;5220:32;5281:1;5274:5;5271:12;5261:40;;5297:1;5294;5287:12;5261:40;5320:5;5310:15;;;4926:405;;;;;:::o;5336:390::-;5414:6;5422;5475:2;5463:9;5454:7;5450:23;5446:32;5443:52;;;5491:1;5488;5481:12;5443:52;5527:9;5514:23;5504:33;;5588:2;5577:9;5573:18;5560:32;5615:18;5607:6;5604:30;5601:50;;;5647:1;5644;5637:12;5601:50;5670;5712:7;5703:6;5692:9;5688:22;5670:50;:::i;:::-;5660:60;;;5336:390;;;;;:::o;6437:250::-;6522:1;6532:113;6546:6;6543:1;6540:13;6532:113;;;6622:11;;;6616:18;6603:11;;;6596:39;6568:2;6561:10;6532:113;;;-1:-1:-1;;6679:1:202;6661:16;;6654:27;6437:250::o;6692:329::-;6733:3;6771:5;6765:12;6798:6;6793:3;6786:19;6814:76;6883:6;6876:4;6871:3;6867:14;6860:4;6853:5;6849:16;6814:76;:::i;:::-;6935:2;6923:15;-1:-1:-1;;6919:88:202;6910:98;;;;7010:4;6906:109;;6692:329;-1:-1:-1;;6692:329:202:o;7026:320::-;7233:6;7222:9;7215:25;7276:2;7271;7260:9;7256:18;7249:30;7196:4;7296:44;7336:2;7325:9;7321:18;7313:6;7296:44;:::i;7351:442::-;7404:5;7457:3;7450:4;7442:6;7438:17;7434:27;7424:55;;7475:1;7472;7465:12;7424:55;7504:6;7498:13;7535:49;7551:32;7580:2;7551:32;:::i;7535:49::-;7609:2;7600:7;7593:19;7655:3;7648:4;7643:2;7635:6;7631:15;7627:26;7624:35;7621:55;;;7672:1;7669;7662:12;7621:55;7685:77;7759:2;7752:4;7743:7;7739:18;7732:4;7724:6;7720:17;7685:77;:::i;7798:335::-;7877:6;7930:2;7918:9;7909:7;7905:23;7901:32;7898:52;;;7946:1;7943;7936:12;7898:52;7979:9;7973:16;8012:18;8004:6;8001:30;7998:50;;;8044:1;8041;8034:12;7998:50;8067:60;8119:7;8110:6;8099:9;8095:22;8067:60;:::i;8486:184::-;-1:-1:-1;;;8535:1:202;8528:88;8635:4;8632:1;8625:15;8659:4;8656:1;8649:15;8675:125;8740:9;;;8761:10;;;8758:36;;;8774:18;;:::i;8805:195::-;8844:3;-1:-1:-1;;8868:5:202;8865:77;8862:103;;8945:18;;:::i;:::-;-1:-1:-1;8992:1:202;8981:13;;8805:195::o;9005:251::-;9075:6;9128:2;9116:9;9107:7;9103:23;9099:32;9096:52;;;9144:1;9141;9134:12;9096:52;9176:9;9170:16;9195:31;9220:5;9195:31;:::i;10021:423::-;10242:6;10231:9;10224:25;10258:37;10288:6;10258:37;:::i;:::-;10331:6;10326:2;10315:9;10311:18;10304:34;10374:2;10369;10358:9;10354:18;10347:30;10205:4;10394:44;10434:2;10423:9;10419:18;10411:6;10394:44;:::i;11505:184::-;-1:-1:-1;;;11554:1:202;11547:88;11654:4;11651:1;11644:15;11678:4;11675:1;11668:15;12808:407;12891:5;12931;12925:12;12973:4;12966:5;12962:16;12956:23;12998:66;13090:2;13086;13082:11;13073:20;;13116:1;13108:6;13105:13;13102:107;;;13196:2;13190;13180:6;13177:1;13173:14;13170:1;13166:22;13162:31;13158:2;13154:40;13150:49;13141:58;;13102:107;;;;12808:407;;;:::o;13473:439::-;13526:3;13564:5;13558:12;13591:6;13586:3;13579:19;13617:4;13646;13641:3;13637:14;13630:21;;13685:4;13678:5;13674:16;13708:1;13718:169;13732:6;13729:1;13726:13;13718:169;;;13793:13;;13781:26;;13827:12;;;;13862:15;;;;13754:1;13747:9;13718:169;;;-1:-1:-1;13903:3:202;;13473:439;-1:-1:-1;;;;;13473:439:202:o;13917:468::-;14217:6;14206:9;14199:25;14260:2;14255;14244:9;14240:18;14233:30;14180:4;14280:56;14332:2;14321:9;14317:18;14309:6;14280:56;:::i;:::-;14272:64;;14372:6;14367:2;14356:9;14352:18;14345:34;13917:468;;;;;;:::o;14390:655::-;14532:6;14540;14548;14601:2;14589:9;14580:7;14576:23;14572:32;14569:52;;;14617:1;14614;14607:12;14569:52;14650:9;14644:16;14679:18;14720:2;14712:6;14709:14;14706:34;;;14736:1;14733;14726:12;14706:34;14759:60;14811:7;14802:6;14791:9;14787:22;14759:60;:::i;:::-;14749:70;;14859:2;14848:9;14844:18;14838:25;14828:35;;14909:2;14898:9;14894:18;14888:25;14872:41;;14938:2;14928:8;14925:16;14922:36;;;14954:1;14951;14944:12;14922:36;;14977:62;15031:7;15020:8;15009:9;15005:24;14977:62;:::i;15050:709::-;15420:6;15409:9;15402:25;15463:3;15458:2;15447:9;15443:18;15436:31;15383:4;15490:57;15542:3;15531:9;15527:19;15519:6;15490:57;:::i;:::-;15595:4;15587:6;15583:17;15578:2;15567:9;15563:18;15556:45;15649:9;15641:6;15637:22;15632:2;15621:9;15617:18;15610:50;15677:32;15702:6;15694;15677:32;:::i;:::-;15669:40;;;15746:6;15740:3;15729:9;15725:19;15718:35;15050:709;;;;;;;;:::o;15764:548::-;16088:6;16077:9;16070:25;16131:3;16126:2;16115:9;16111:18;16104:31;16051:4;16152:57;16204:3;16193:9;16189:19;16181:6;16152:57;:::i;:::-;16257:4;16245:17;;;;16240:2;16225:18;;16218:45;-1:-1:-1;16294:2:202;16279:18;16272:34;16144:65;15764:548;-1:-1:-1;;15764:548:202:o;16317:184::-;16387:6;16440:2;16428:9;16419:7;16415:23;16411:32;16408:52;;;16456:1;16453;16446:12;16408:52;-1:-1:-1;16479:16:202;;16317:184;-1:-1:-1;16317:184:202:o;16506:175::-;16543:3;16587:4;16580:5;16576:16;16616:4;16607:7;16604:17;16601:43;;16624:18;;:::i;:::-;16673:1;16660:15;;16506:175;-1:-1:-1;;16506:175:202:o;16686:604::-;16995:6;16984:9;16977:25;17038:3;17033:2;17022:9;17018:18;17011:31;16958:4;17065:57;17117:3;17106:9;17102:19;17094:6;17065:57;:::i;:::-;17170:4;17162:6;17158:17;17153:2;17142:9;17138:18;17131:45;17224:9;17216:6;17212:22;17207:2;17196:9;17192:18;17185:50;17252:32;17277:6;17269;17252:32;:::i;:::-;17244:40;16686:604;-1:-1:-1;;;;;;;16686:604:202:o;17622:128::-;17689:9;;;17710:11;;;17707:37;;;17724:18;;:::i;17755:168::-;17828:9;;;17859;;17876:15;;;17870:22;;17856:37;17846:71;;17897:18;;:::i;17928:640::-;18179:6;18174:3;18167:19;18149:3;18205:2;18238;18233:3;18229:12;18270:6;18264:13;18335:2;18327:6;18323:15;18356:1;18366:175;18380:6;18377:1;18374:13;18366:175;;;18443:13;;18429:28;;18479:14;;;;18516:15;;;;18402:1;18395:9;18366:175;;;-1:-1:-1;18557:5:202;;17928:640;-1:-1:-1;;;;;;;17928:640:202:o;18573:184::-;-1:-1:-1;;;18622:1:202;18615:88;18722:4;18719:1;18712:15;18746:4;18743:1;18736:15;18762:511;19013:2;19002:9;18995:21;18976:4;19039:56;19091:2;19080:9;19076:18;19068:6;19039:56;:::i;:::-;19143:14;19135:6;19131:27;19126:2;19115:9;19111:18;19104:55;19207:9;19199:6;19195:22;19190:2;19179:9;19175:18;19168:50;19235:32;19260:6;19252;19235:32;:::i;19278:616::-;19589:6;19578:9;19571:25;19632:3;19627:2;19616:9;19612:18;19605:31;19552:4;19659:57;19711:3;19700:9;19696:19;19688:6;19659:57;:::i;:::-;19764:14;19756:6;19752:27;19747:2;19736:9;19732:18;19725:55;19828:9;19820:6;19816:22;19811:2;19800:9;19796:18;19789:50;19856:32;19881:6;19873;19856:32;:::i;19899:925::-;20348:66;20340:6;20336:79;20331:3;20324:92;20306:3;20435;20467:2;20463:1;20458:3;20454:11;20447:23;20499:6;20493:13;20515:74;20582:6;20578:1;20573:3;20569:11;20562:4;20554:6;20550:17;20515:74;:::i;:::-;20617:6;20612:3;20608:16;20598:26;;20652:2;20648:1;20644:2;20640:10;20633:22;20686:6;20680:13;20664:29;;20702:75;20768:8;20764:1;20760:2;20756:10;20749:4;20741:6;20737:17;20702:75;:::i;:::-;20797:17;20816:1;20793:25;;19899:925;-1:-1:-1;;;;;19899:925:202:o;20829:339::-;21006:2;20995:9;20988:21;20969:4;21026:44;21066:2;21055:9;21051:18;21043:6;21026:44;:::i;:::-;21018:52;;-1:-1:-1;;;;;21110:6:202;21106:55;21101:2;21090:9;21086:18;21079:83;20829:339;;;;;:::o;21173:287::-;21302:3;21340:6;21334:13;21356:66;21415:6;21410:3;21403:4;21395:6;21391:17;21356:66;:::i;:::-;21438:16;;;;;21173:287;-1:-1:-1;;21173:287:202:o;21684:464::-;21931:66;21923:6;21919:79;21908:9;21901:98;22035:6;22030:2;22019:9;22015:18;22008:34;22078:2;22073;22062:9;22058:18;22051:30;21882:4;22098:44;22138:2;22127:9;22123:18;22115:6;22098:44;:::i;22153:174::-;22220:12;22252:10;;;22264;;;22248:27;;22287:11;;;22284:37;;;22301:18;;:::i;:::-;22284:37;22153:174;;;;:::o;22979:901::-;23404:6;23393:9;23386:25;23447:3;23442:2;23431:9;23427:18;23420:31;23367:4;23474:57;23526:3;23515:9;23511:19;23503:6;23474:57;:::i;:::-;23579:4;23567:17;;23562:2;23547:18;;23540:45;23604:12;23652:15;;;23647:2;23632:18;;23625:43;23705:15;;23699:3;23684:19;;23677:44;23752:3;23737:19;;23730:35;;;23802:22;;;23796:3;23781:19;;23774:51;23842:32;23806:6;23859;23842:32;:::i;:::-;23834:40;22979:901;-1:-1:-1;;;;;;;;;;22979:901:202:o;23885:788::-;24250:3;24239:9;24232:22;24213:4;24277:57;24329:3;24318:9;24314:19;24306:6;24277:57;:::i;:::-;24382:4;24374:6;24370:17;24365:2;24354:9;24350:18;24343:45;24436:14;24428:6;24424:27;24419:2;24408:9;24404:18;24397:55;24500:12;24492:6;24488:25;24483:2;24472:9;24468:18;24461:53;24551:6;24545:3;24534:9;24530:19;24523:35;24607:9;24599:6;24595:22;24589:3;24578:9;24574:19;24567:51;24635:32;24660:6;24652;24635:32;:::i;:::-;24627:40;23885:788;-1:-1:-1;;;;;;;;;23885:788:202:o;24938:530::-;25123:3;25161:6;25155:13;25177:66;25236:6;25231:3;25224:4;25216:6;25212:17;25177:66;:::i;:::-;25312:2;25308:15;;;;-1:-1:-1;;25304:88:202;25265:16;;;;25290:103;;;25420:2;25409:14;;25402:30;;;;25459:2;25448:14;;24938:530;-1:-1:-1;;24938:530:202:o;25473:359::-;25676:2;25665:9;25658:21;25639:4;25696:44;25736:2;25725:9;25721:18;25713:6;25696:44;:::i;:::-;25771:2;25756:18;;25749:34;;;;-1:-1:-1;25814:2:202;25799:18;25792:34;25688:52;25473:359;-1:-1:-1;25473:359:202:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentAvailableLevel(uint256)":"1ecb393f","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c\",\"dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0\",\"dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0xfc85a0b615631dc5cfa9fefb0ef067e158019cf8d7836a8eafc1b4a0a3888907\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d55df21afe9e4517492081158714ea00bb33cf5ee06b0861ddda1d5cf06b7f56\",\"dweb:/ipfs/QmWoZThPDga5cs28BSkHGw173WwQRMVC14kEHZQcSb5t2z\"]},\"src/utils.sol\":{\"keccak256\":\"0xf346e5e55e21a06c5337887dbecefccdd3e3f001c7b461875bb69242e1bda1c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9dae95bc79f3143fdaef0c92d0ffca7521609c12319aee4fb2f994ba548e279c\",\"dweb:/ipfs/QmbbhHcQcnGWVmfnbg9vLdAnjCA38BAJq3omoLEF4o5kbx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059","urls":["bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c","dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf","urls":["bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0","dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0xfc85a0b615631dc5cfa9fefb0ef067e158019cf8d7836a8eafc1b4a0a3888907","urls":["bzz-raw://d55df21afe9e4517492081158714ea00bb33cf5ee06b0861ddda1d5cf06b7f56","dweb:/ipfs/QmWoZThPDga5cs28BSkHGw173WwQRMVC14kEHZQcSb5t2z"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf346e5e55e21a06c5337887dbecefccdd3e3f001c7b461875bb69242e1bda1c5","urls":["bzz-raw://9dae95bc79f3143fdaef0c92d0ffca7521609c12319aee4fb2f994ba548e279c","dweb:/ipfs/QmbbhHcQcnGWVmfnbg9vLdAnjCA38BAJq3omoLEF4o5kbx"],"license":"MIT"}},"version":1},"id":198} \ No newline at end of file diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json b/packages/contracts/out/IWorld.sol/IWorld.abi.json index 462e30725..eaec4d9d7 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json @@ -138,6 +138,30 @@ ], "stateMutability": "view" }, + { + "type": "function", + "name": "UD__calculateGoldDrop", + "inputs": [ + { + "name": "mobLevel", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "randomNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "dropAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__checkRequirements", @@ -592,30 +616,30 @@ }, { "type": "function", - "name": "UD__getCurrentItemsCounter", - "inputs": [], - "outputs": [ + "name": "UD__getCurrentAvailableLevel", + "inputs": [ { - "name": "", + "name": "experience", "type": "uint256", "internalType": "uint256" } ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getCurrentLevel", - "inputs": [ + "outputs": [ { - "name": "experience", + "name": "currentLevel", "type": "uint256", "internalType": "uint256" } ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "UD__getCurrentItemsCounter", + "inputs": [], "outputs": [ { - "name": "currentLevel", + "name": "", "type": "uint256", "internalType": "uint256" } diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts index fc3fe695a..61efabd48 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts @@ -138,6 +138,30 @@ declare const abi: [ ], "stateMutability": "view" }, + { + "type": "function", + "name": "UD__calculateGoldDrop", + "inputs": [ + { + "name": "mobLevel", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "randomNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "dropAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__checkRequirements", @@ -592,30 +616,30 @@ declare const abi: [ }, { "type": "function", - "name": "UD__getCurrentItemsCounter", - "inputs": [], - "outputs": [ + "name": "UD__getCurrentAvailableLevel", + "inputs": [ { - "name": "", + "name": "experience", "type": "uint256", "internalType": "uint256" } ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getCurrentLevel", - "inputs": [ + "outputs": [ { - "name": "experience", + "name": "currentLevel", "type": "uint256", "internalType": "uint256" } ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "UD__getCurrentItemsCounter", + "inputs": [], "outputs": [ { - "name": "currentLevel", + "name": "", "type": "uint256", "internalType": "uint256" } diff --git a/packages/contracts/out/IWorld.sol/IWorld.json b/packages/contracts/out/IWorld.sol/IWorld.json index d79adc293..e20076ffa 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.json +++ b/packages/contracts/out/IWorld.sol/IWorld.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"UD___calculateMagicAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD___calculatePhysicalAttack","inputs":[{"name":"attackStats","type":"tuple","internalType":"struct PhysicalAttackStats","components":[{"name":"bonusDamage","type":"int256","internalType":"int256"},{"name":"armorPenetration","type":"int256","internalType":"int256"},{"name":"attackModifierBonus","type":"int256","internalType":"int256"},{"name":"critChanceBonus","type":"int256","internalType":"int256"}]},{"name":"attackerId","type":"bytes32","internalType":"bytes32"},{"name":"defenderId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"damage","type":"int256","internalType":"int256"},{"name":"hit","type":"bool","internalType":"bool"},{"name":"crit","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__applyEquipmentBonuses","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"modifiedStats","type":"tuple","internalType":"struct AdjustedCombatStats","components":[{"name":"adjustedStrength","type":"uint256","internalType":"uint256"},{"name":"adjustedAgility","type":"uint256","internalType":"uint256"},{"name":"adjustedIntelligence","type":"uint256","internalType":"uint256"},{"name":"adjustedArmor","type":"uint256","internalType":"uint256"},{"name":"adjustedMaxHp","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canUse","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createAction","inputs":[{"name":"actionType","type":"uint8","internalType":"enum ActionType"},{"name":"actionStats","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"dropChance","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"dropChances","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItems","inputs":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"characterIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__endTurn","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__executeCombat","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getArmorStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_ArmorStats","type":"tuple","internalType":"struct ArmorStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"armorModifier","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentItemsCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEncounter","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_encounterData","type":"tuple","internalType":"struct CombatEncounterData","components":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"},{"name":"currentTurn","type":"uint256","internalType":"uint256"},{"name":"maxTurns","type":"uint256","internalType":"uint256"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMobId","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMobPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMulticallContract","inputs":[],"outputs":[{"name":"_multicall","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"UD__getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getSpawnCounter","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct StarterItemsData","components":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"maxDamage","type":"uint256","internalType":"uint256"},{"name":"minDamage","type":"uint256","internalType":"uint256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isItemOwner","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"participants","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidPvE","inputs":[{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isValidPvE","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawnMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD___calculateMagicAttack()":"e0cac377","UD___calculatePhysicalAttack((int256,int256,int256,int256),bytes32,bytes32,uint256,uint256)":"fa760cc5","UD__applyEquipmentBonuses(bytes32)":"54f1f2db","UD__checkRequirements(bytes32,uint256)":"bf4dbebc","UD__createAction(uint8,bytes)":"c3344bd2","UD__createItem(uint8,uint256,uint256,bytes,string)":"c2647a81","UD__createItems(uint8[],uint256[],uint256[],bytes[],string[])":"8a2d4e05","UD__createMatch(uint8,bytes32[],bytes32[])":"3e602b01","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__dropItems(uint256[],uint256[],bytes32[])":"e45cde14","UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"1f357129","UD__enterGame(bytes32)":"b968fa3a","UD__equipItems(bytes32,uint256[])":"2d9ac2be","UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"a0ba1f1e","UD__getArmorStats(uint256)":"e75aa93b","UD__getCharacterToken()":"49d8cf02","UD__getCharacterTokenId(bytes32)":"d97302d0","UD__getClass(bytes32)":"0ae6f9ab","UD__getCurrentItemsCounter()":"4652f280","UD__getCurrentLevel(uint256)":"e83e2af9","UD__getEncounter(bytes32)":"55faf03a","UD__getEntitiesAtPosition(uint16,uint16)":"d0f8a4f5","UD__getEntropy()":"b5c691c7","UD__getExperience(bytes32)":"a8b79e60","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getMob(bytes32)":"5ac36570","UD__getMob(uint256)":"622834d0","UD__getMobId(bytes32)":"53d64640","UD__getMobPosition(bytes32)":"8b3f8277","UD__getMonsterStats(bytes32)":"e6c22e06","UD__getMonsterStats(uint256)":"91b22373","UD__getMulticallContract()":"71ce415d","UD__getName(bytes32)":"e902af7a","UD__getNpcStats(bytes32)":"a17a6b7f","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(bytes32)":"777c2caf","UD__getOwnerAddress(bytes32)":"4f10aabc","UD__getPlayerEntityId(uint256)":"02ee03fa","UD__getPythProvider()":"e24cefd9","UD__getSpawnCounter(bytes32)":"f4e1633b","UD__getStarterItems(uint8)":"b8bfeca1","UD__getStats(bytes32)":"14b13b0e","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isAtPosition(bytes32,uint16,uint16)":"f48a3972","UD__isEquipped(bytes32,uint256)":"7273e39a","UD__isItemOwner(uint256,address)":"b3634118","UD__isParticipant(address,bytes32)":"7868d715","UD__isParticipant(address,bytes32[])":"18853912","UD__isValidCharacterId(bytes32)":"fa1becc4","UD__isValidMob(bytes32)":"bace814a","UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)":"c6d5525b","UD__issueStarterItems(bytes32)":"f9d175ed","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(bytes32,uint16,uint16)":"d1138fa1","UD__rollStats(bytes32,bytes32,uint8)":"18f14781","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(bytes32)":"7e29a6f6","UD__spawnMob(uint256,uint16,uint16)":"15bc4248","UD__unequipItem(bytes32,uint256)":"7a190324","UD__updateTokenUri(bytes32,string)":"ecd73f84","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dropChance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"dropChances\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getMulticallContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_multicall\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be\",\"dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f\",\"dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716\",\"dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD___calculateMagicAttack"},{"inputs":[{"internalType":"struct PhysicalAttackStats","name":"attackStats","type":"tuple","components":[{"internalType":"int256","name":"bonusDamage","type":"int256"},{"internalType":"int256","name":"armorPenetration","type":"int256"},{"internalType":"int256","name":"attackModifierBonus","type":"int256"},{"internalType":"int256","name":"critChanceBonus","type":"int256"}]},{"internalType":"bytes32","name":"attackerId","type":"bytes32"},{"internalType":"bytes32","name":"defenderId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD___calculatePhysicalAttack","outputs":[{"internalType":"int256","name":"damage","type":"int256"},{"internalType":"bool","name":"hit","type":"bool"},{"internalType":"bool","name":"crit","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__applyEquipmentBonuses","outputs":[{"internalType":"struct AdjustedCombatStats","name":"modifiedStats","type":"tuple","components":[{"internalType":"uint256","name":"adjustedStrength","type":"uint256"},{"internalType":"uint256","name":"adjustedAgility","type":"uint256"},{"internalType":"uint256","name":"adjustedIntelligence","type":"uint256"},{"internalType":"uint256","name":"adjustedArmor","type":"uint256"},{"internalType":"uint256","name":"adjustedMaxHp","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"class","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"canUse","type":"bool"}]},{"inputs":[{"internalType":"enum ActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"actionStats","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"UD__createAction","outputs":[{"internalType":"bytes32","name":"actionId","type":"bytes32"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"dropChance","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"uint256[]","name":"dropChances","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes32[]","name":"characterIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItems"},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"UD__endTurn"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"UD__executeCombat"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getArmorStats","outputs":[{"internalType":"struct ArmorStats","name":"_ArmorStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint256","name":"armorModifier","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCurrentItemsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getEncounter","outputs":[{"internalType":"struct CombatEncounterData","name":"_encounterData","type":"tuple","components":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"currentTurn","type":"uint256"},{"internalType":"uint256","name":"maxTurns","type":"uint256"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobPosition","outputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getMulticallContract","outputs":[{"internalType":"address","name":"_multicall","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getSpawnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"view","type":"function","name":"UD__getStarterItems","outputs":[{"internalType":"struct StarterItemsData","name":"data","type":"tuple","components":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"maxDamage","type":"uint256"},{"internalType":"uint256","name":"minDamage","type":"uint256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isItemOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"participants","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidMob","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isValidPvE","outputs":[{"internalType":"bool","name":"_isValidPvE","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawnMob","outputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__updateTokenUri"},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff","urls":["bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be","dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383","urls":["bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f","dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e","urls":["bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716","dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"}},"version":1},"id":205} \ No newline at end of file +{"abi":[{"type":"function","name":"UD___calculateMagicAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD___calculatePhysicalAttack","inputs":[{"name":"attackStats","type":"tuple","internalType":"struct PhysicalAttackStats","components":[{"name":"bonusDamage","type":"int256","internalType":"int256"},{"name":"armorPenetration","type":"int256","internalType":"int256"},{"name":"attackModifierBonus","type":"int256","internalType":"int256"},{"name":"critChanceBonus","type":"int256","internalType":"int256"}]},{"name":"attackerId","type":"bytes32","internalType":"bytes32"},{"name":"defenderId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"damage","type":"int256","internalType":"int256"},{"name":"hit","type":"bool","internalType":"bool"},{"name":"crit","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__applyEquipmentBonuses","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"modifiedStats","type":"tuple","internalType":"struct AdjustedCombatStats","components":[{"name":"adjustedStrength","type":"uint256","internalType":"uint256"},{"name":"adjustedAgility","type":"uint256","internalType":"uint256"},{"name":"adjustedIntelligence","type":"uint256","internalType":"uint256"},{"name":"adjustedArmor","type":"uint256","internalType":"uint256"},{"name":"adjustedMaxHp","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__calculateGoldDrop","inputs":[{"name":"mobLevel","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dropAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canUse","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createAction","inputs":[{"name":"actionType","type":"uint8","internalType":"enum ActionType"},{"name":"actionStats","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"dropChance","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"dropChances","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItems","inputs":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"characterIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__endTurn","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__executeCombat","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getArmorStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_ArmorStats","type":"tuple","internalType":"struct ArmorStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"armorModifier","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentItemsCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEncounter","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_encounterData","type":"tuple","internalType":"struct CombatEncounterData","components":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"},{"name":"currentTurn","type":"uint256","internalType":"uint256"},{"name":"maxTurns","type":"uint256","internalType":"uint256"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMobId","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMobPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMulticallContract","inputs":[],"outputs":[{"name":"_multicall","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"UD__getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getSpawnCounter","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct StarterItemsData","components":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"maxDamage","type":"uint256","internalType":"uint256"},{"name":"minDamage","type":"uint256","internalType":"uint256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isItemOwner","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"participants","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidPvE","inputs":[{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isValidPvE","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawnMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD___calculateMagicAttack()":"e0cac377","UD___calculatePhysicalAttack((int256,int256,int256,int256),bytes32,bytes32,uint256,uint256)":"fa760cc5","UD__applyEquipmentBonuses(bytes32)":"54f1f2db","UD__calculateGoldDrop(uint256,uint256)":"c3505171","UD__checkRequirements(bytes32,uint256)":"bf4dbebc","UD__createAction(uint8,bytes)":"c3344bd2","UD__createItem(uint8,uint256,uint256,bytes,string)":"c2647a81","UD__createItems(uint8[],uint256[],uint256[],bytes[],string[])":"8a2d4e05","UD__createMatch(uint8,bytes32[],bytes32[])":"3e602b01","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__dropItems(uint256[],uint256[],bytes32[])":"e45cde14","UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"1f357129","UD__enterGame(bytes32)":"b968fa3a","UD__equipItems(bytes32,uint256[])":"2d9ac2be","UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"a0ba1f1e","UD__getArmorStats(uint256)":"e75aa93b","UD__getCharacterToken()":"49d8cf02","UD__getCharacterTokenId(bytes32)":"d97302d0","UD__getClass(bytes32)":"0ae6f9ab","UD__getCurrentAvailableLevel(uint256)":"d453e623","UD__getCurrentItemsCounter()":"4652f280","UD__getEncounter(bytes32)":"55faf03a","UD__getEntitiesAtPosition(uint16,uint16)":"d0f8a4f5","UD__getEntropy()":"b5c691c7","UD__getExperience(bytes32)":"a8b79e60","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getMob(bytes32)":"5ac36570","UD__getMob(uint256)":"622834d0","UD__getMobId(bytes32)":"53d64640","UD__getMobPosition(bytes32)":"8b3f8277","UD__getMonsterStats(bytes32)":"e6c22e06","UD__getMonsterStats(uint256)":"91b22373","UD__getMulticallContract()":"71ce415d","UD__getName(bytes32)":"e902af7a","UD__getNpcStats(bytes32)":"a17a6b7f","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(bytes32)":"777c2caf","UD__getOwnerAddress(bytes32)":"4f10aabc","UD__getPlayerEntityId(uint256)":"02ee03fa","UD__getPythProvider()":"e24cefd9","UD__getSpawnCounter(bytes32)":"f4e1633b","UD__getStarterItems(uint8)":"b8bfeca1","UD__getStats(bytes32)":"14b13b0e","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isAtPosition(bytes32,uint16,uint16)":"f48a3972","UD__isEquipped(bytes32,uint256)":"7273e39a","UD__isItemOwner(uint256,address)":"b3634118","UD__isParticipant(address,bytes32)":"7868d715","UD__isParticipant(address,bytes32[])":"18853912","UD__isValidCharacterId(bytes32)":"fa1becc4","UD__isValidMob(bytes32)":"bace814a","UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)":"c6d5525b","UD__issueStarterItems(bytes32)":"f9d175ed","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(bytes32,uint16,uint16)":"d1138fa1","UD__rollStats(bytes32,bytes32,uint8)":"18f14781","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(bytes32)":"7e29a6f6","UD__spawnMob(uint256,uint16,uint16)":"15bc4248","UD__unequipItem(bytes32,uint256)":"7a190324","UD__updateTokenUri(bytes32,string)":"ecd73f84","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD__calculateGoldDrop\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dropAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dropChance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"dropChances\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getMulticallContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_multicall\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0\",\"dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD___calculateMagicAttack"},{"inputs":[{"internalType":"struct PhysicalAttackStats","name":"attackStats","type":"tuple","components":[{"internalType":"int256","name":"bonusDamage","type":"int256"},{"internalType":"int256","name":"armorPenetration","type":"int256"},{"internalType":"int256","name":"attackModifierBonus","type":"int256"},{"internalType":"int256","name":"critChanceBonus","type":"int256"}]},{"internalType":"bytes32","name":"attackerId","type":"bytes32"},{"internalType":"bytes32","name":"defenderId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD___calculatePhysicalAttack","outputs":[{"internalType":"int256","name":"damage","type":"int256"},{"internalType":"bool","name":"hit","type":"bool"},{"internalType":"bool","name":"crit","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__applyEquipmentBonuses","outputs":[{"internalType":"struct AdjustedCombatStats","name":"modifiedStats","type":"tuple","components":[{"internalType":"uint256","name":"adjustedStrength","type":"uint256"},{"internalType":"uint256","name":"adjustedAgility","type":"uint256"},{"internalType":"uint256","name":"adjustedIntelligence","type":"uint256"},{"internalType":"uint256","name":"adjustedArmor","type":"uint256"},{"internalType":"uint256","name":"adjustedMaxHp","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"class","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"mobLevel","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__calculateGoldDrop","outputs":[{"internalType":"uint256","name":"dropAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"canUse","type":"bool"}]},{"inputs":[{"internalType":"enum ActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"actionStats","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"UD__createAction","outputs":[{"internalType":"bytes32","name":"actionId","type":"bytes32"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"dropChance","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"uint256[]","name":"dropChances","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes32[]","name":"characterIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItems"},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"UD__endTurn"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"UD__executeCombat"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getArmorStats","outputs":[{"internalType":"struct ArmorStats","name":"_ArmorStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint256","name":"armorModifier","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCurrentItemsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getEncounter","outputs":[{"internalType":"struct CombatEncounterData","name":"_encounterData","type":"tuple","components":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"currentTurn","type":"uint256"},{"internalType":"uint256","name":"maxTurns","type":"uint256"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobPosition","outputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getMulticallContract","outputs":[{"internalType":"address","name":"_multicall","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getSpawnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"view","type":"function","name":"UD__getStarterItems","outputs":[{"internalType":"struct StarterItemsData","name":"data","type":"tuple","components":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"maxDamage","type":"uint256"},{"internalType":"uint256","name":"minDamage","type":"uint256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isItemOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"participants","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidMob","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isValidPvE","outputs":[{"internalType":"bool","name":"_isValidPvE","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawnMob","outputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__updateTokenUri"},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf","urls":["bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0","dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"}},"version":1},"id":206} \ No newline at end of file diff --git a/packages/contracts/out/MapSystem.sol/MapSystem.json b/packages/contracts/out/MapSystem.sol/MapSystem.json index 9241dd2d7..da4caec26 100644 --- a/packages/contracts/out/MapSystem.sol/MapSystem.json +++ b/packages/contracts/out/MapSystem.sol/MapSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220a4ad18fa52194998f62789e684994ac718fcb2044aaa2714aaf327304a6a611964736f6c63430008180033","sourceMap":"412:4148:215:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220a4ad18fa52194998f62789e684994ac718fcb2044aaa2714aaf327304a6a611964736f6c63430008180033","sourceMap":"412:4148:215:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:228;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:228;;;689:74;;677:2;662:18;1262:113:123;543:226:228;1755:239:215;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:228;;1401:2;1386:18;1616:110:123;1267:177:228;1580:169:215;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:215:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:215:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:215;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:215;;1279:70;;;;-1:-1:-1;;;1279:70:215;;2807:2:228;1279:70:215;;;2789:21:228;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:215;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:215;;3212:2:228;1360:67:215;;;3194:21:228;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:215;3010:349:228;1360:67:215;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:215;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:215;;605:69;;;;-1:-1:-1;;;605:69:215;;3566:2:228;605:69:215;;;3548:21:228;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:215;3364:399:228;605:69:215;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:215;;3970:2:228;685:62:215;;;3952:21:228;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:215;3768:345:228;685:62:215;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:215;;4320:2:228;885:37:215;;;4302:21:228;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:215;4118:339:228;885:37:215;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:215;;4664:2:228;932:38:215;;;4646:21:228;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:215;4462:339:228;932:38:215;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:215;;5008:2:228;980:91:215;;;4990:21:228;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:215;4806:354:228;980:91:215;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:191:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:191;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:182:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:182;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:182:o;4071:290:179:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;2592:291:193:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:193;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:193:o;5796:354:191:-;7947:22;;;16149:3:228;16145:16;;;16054:66;16141:25;;;7947:22:191;;;;16129:38:228;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:191;;;;;;;;;6023:1;16238:11:228;;;6009:16:191;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:191;;-1:-1:-1;;6023:1:191;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:191;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:193:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:193;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:228;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:193;;;;-1:-1:-1;;4107:27:193;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:182:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:182;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;9759:28:182;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:185:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:215:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:215;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:215:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:215;;7009:2:228;4393:63:215;;;6991:21:228;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:215;6807:355:228;4393:63:215;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:215;;7369:2:228;2296:80:215;;;7351:21:228;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:215;7167:403:228;2296:80:215;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:228;;1401:2;1386:18;;1267:177;2515:42:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:215;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:228;2594:9:215;;:20;;1386:18:228;;2594:38:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:215;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:228;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:215;;;;-1:-1:-1;;2754:148:215;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:215;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:191:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:191;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:191;-1:-1:-1;;;;7036:160:191:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:182:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:182;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;12402:28:182;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:182;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:215:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:188:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:188;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:228;18911:18;;3713:52:107;18794:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:215:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:215;;3609:106;-1:-1:-1;3609:106:215:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:228;25536:15;;;45340:92:45;;;25518:34:228;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:228;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:228;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:228;;51494:30:45;27964:279:228;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:228;;;1386:18;;7664:67:24;1267:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:228;30142:79;;2092:30:124;;;30130:92:228;2092:30:124;;30238:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:193;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:193;6914:97;14:332:228;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:228;;1710:439;-1:-1:-1;;;;;1710:439:228:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:228;;2420:180;-1:-1:-1;2420:180:228:o;5165:184::-;-1:-1:-1;;;5214:1:228;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:228;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:228;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:228;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:228;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:228;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:228;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:228;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:228;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:228;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:228;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:228:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:228;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:228:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:228:o;10716:184::-;-1:-1:-1;;;10765:1:228;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:228:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:228;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:228;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:228;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:228;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:228:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:228;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:228:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:228;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:228:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:228;;15702:184;-1:-1:-1;15702:184:228:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:228:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:228:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:228;;21043:640;-1:-1:-1;;;;;;;21043:640:228:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:228:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:228:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:228:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:228;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:228:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:228:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be\",\"dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f\",\"dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716\",\"dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x1f74fcddfb3a505df05f58350e537f5e950533d3f592f1a55122414d0dfef6ff","urls":["bzz-raw://2c6464153d9a6c53201aaae87355bea23b2639d8e055cb1f285054dd1a0cd1be","dweb:/ipfs/QmRsjTtsueP1XDPx1tVBUiMZ2wkzCJRNvr3nSf5HJYDbSS"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x2ead73df82281c903367ba132f2640014a75514fca5046de539e4df9976b7383","urls":["bzz-raw://0ab3bf9ddd81454fab3a82c1e4a2ffa6dd57c16ed7ca6ef8005e295203c37f7f","dweb:/ipfs/QmVHnpBw3okaaykVTkmDLGWJfLgYX3uMM3ArS6irpaTBUD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0x4b0aa51a1eb9484871d72cec76f865300d063be25f82575eefae8ba3fdad207e","urls":["bzz-raw://dc01c3835dfbc8ecfbeb01c4b42f659fafd366be3502280311826bddb40b6716","dweb:/ipfs/QmeeC5KUgTva3sxsCXBi2qxi9Mc19CfRy2aGynZNNDPK7Y"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":215} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea26469706673582212209f970bff027fc4bfc7b70335db8c165a4d5d501c03fcb2be76db5c30d02a61da64736f6c63430008180033","sourceMap":"412:4148:217:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea26469706673582212209f970bff027fc4bfc7b70335db8c165a4d5d501c03fcb2be76db5c30d02a61da64736f6c63430008180033","sourceMap":"412:4148:217:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:229;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:229;;;689:74;;677:2;662:18;1262:113:123;543:226:229;1755:239:217;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:229;;1401:2;1386:18;1616:110:123;1267:177:229;1580:169:217;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:217:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:217:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:217;;1279:70;;;;-1:-1:-1;;;1279:70:217;;2807:2:229;1279:70:217;;;2789:21:229;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:217;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:217;;3212:2:229;1360:67:217;;;3194:21:229;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:217;3010:349:229;1360:67:217;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:217;;605:69;;;;-1:-1:-1;;;605:69:217;;3566:2:229;605:69:217;;;3548:21:229;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:217;3364:399:229;605:69:217;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:217;;3970:2:229;685:62:217;;;3952:21:229;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:217;3768:345:229;685:62:217;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:217;;4320:2:229;885:37:217;;;4302:21:229;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:217;4118:339:229;885:37:217;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:217;;4664:2:229;932:38:217;;;4646:21:229;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:217;4462:339:229;932:38:217;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:217;;5008:2:229;980:91:217;;;4990:21:229;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:217;4806:354:229;980:91:217;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:191:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:191;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:182:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:182;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:182:o;4071:290:179:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;2592:291:193:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:193;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:193:o;5796:354:191:-;7947:22;;;16149:3:229;16145:16;;;16054:66;16141:25;;;7947:22:191;;;;16129:38:229;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:191;;;;;;;;;6023:1;16238:11:229;;;6009:16:191;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:191;;-1:-1:-1;;6023:1:191;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:191;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:193:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:193;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:229;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:193;;;;-1:-1:-1;;4107:27:193;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:182:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:182;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;9759:28:182;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:185:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:217:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:217;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:217:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:217;;7009:2:229;4393:63:217;;;6991:21:229;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:217;6807:355:229;4393:63:217;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:217;;7369:2:229;2296:80:217;;;7351:21:229;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:217;7167:403:229;2296:80:217;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:229;;1401:2;1386:18;;1267:177;2515:42:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:217;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:229;2594:9:217;;:20;;1386:18:229;;2594:38:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:217;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:229;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:217;;;;-1:-1:-1;;2754:148:217;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:217;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:191:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:191;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:191;-1:-1:-1;;;;7036:160:191:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:182:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:182;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;12402:28:182;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:182;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:217:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:188:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:188;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:229;18911:18;;3713:52:107;18794:248:229;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:217:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:217;;3609:106;-1:-1:-1;3609:106:217:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:229;25536:15;;;45340:92:45;;;25518:34:229;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:229;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:229;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:229;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:229;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:229;;51494:30:45;27964:279:229;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:229;;;1386:18;;7664:67:24;1267:177:229;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:229;30142:79;;2092:30:124;;;30130:92:229;2092:30:124;;30238:12:229;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:193;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:193;6914:97;14:332:229;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:229;;1710:439;-1:-1:-1;;;;;1710:439:229:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:229;;2420:180;-1:-1:-1;2420:180:229:o;5165:184::-;-1:-1:-1;;;5214:1:229;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:229;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:229;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:229;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:229;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:229;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:229;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:229;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:229;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:229;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:229;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:229:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:229;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:229:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:229:o;10716:184::-;-1:-1:-1;;;10765:1:229;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:229:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:229;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:229;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:229;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:229;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:229:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:229;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:229:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:229;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:229:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:229;;15702:184;-1:-1:-1;15702:184:229:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:229:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:229:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:229;;21043:640;-1:-1:-1;;;;;;;21043:640:229:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:229:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:229:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:229:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:229;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:229:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:229:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0\",\"dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf","urls":["bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0","dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":217} \ No newline at end of file diff --git a/packages/contracts/src/codegen/world/ICharacterSystem.sol b/packages/contracts/src/codegen/world/ICharacterSystem.sol index 45aba8d8b..78f513d7a 100644 --- a/packages/contracts/src/codegen/world/ICharacterSystem.sol +++ b/packages/contracts/src/codegen/world/ICharacterSystem.sol @@ -34,7 +34,7 @@ interface ICharacterSystem { function UD__enterGame(bytes32 characterId) external; - function UD__getCurrentLevel(uint256 experience) external view returns (uint256 currentLevel); + function UD__getCurrentAvailableLevel(uint256 experience) external view returns (uint256 currentLevel); function UD__updateTokenUri(bytes32 characterId, string memory tokenUri) external; diff --git a/packages/contracts/src/codegen/world/ICombatSystem.sol b/packages/contracts/src/codegen/world/ICombatSystem.sol index 3bc332177..8df309ab1 100644 --- a/packages/contracts/src/codegen/world/ICombatSystem.sol +++ b/packages/contracts/src/codegen/world/ICombatSystem.sol @@ -48,4 +48,6 @@ interface ICombatSystem { function UD__getEncounter(bytes32 encounterId) external view returns (CombatEncounterData memory _encounterData); function UD___calculateMagicAttack() external; + + function UD__calculateGoldDrop(uint256 mobLevel, uint256 randomNumber) external returns (uint256 dropAmount); } diff --git a/packages/contracts/src/codegen/world/IWorld.sol b/packages/contracts/src/codegen/world/IWorld.sol index fa6951fa6..f54982249 100644 --- a/packages/contracts/src/codegen/world/IWorld.sol +++ b/packages/contracts/src/codegen/world/IWorld.sol @@ -10,6 +10,7 @@ import { ICharacterSystem } from "./ICharacterSystem.sol"; import { ICombatSystem } from "./ICombatSystem.sol"; import { IEquipmentSystem } from "./IEquipmentSystem.sol"; import { IItemsSystem } from "./IItemsSystem.sol"; +import { ILootManagerSystem } from "./ILootManagerSystem.sol"; import { IMapSystem } from "./IMapSystem.sol"; import { IMobSystem } from "./IMobSystem.sol"; import { IUltimateDominionConfigSystem } from "./IUltimateDominionConfigSystem.sol"; @@ -28,6 +29,7 @@ interface IWorld is ICombatSystem, IEquipmentSystem, IItemsSystem, + ILootManagerSystem, IMapSystem, IMobSystem, IUltimateDominionConfigSystem diff --git a/packages/contracts/src/systems/CharacterSystem.sol b/packages/contracts/src/systems/CharacterSystem.sol index 0412cd579..7a0b23388 100644 --- a/packages/contracts/src/systems/CharacterSystem.sol +++ b/packages/contracts/src/systems/CharacterSystem.sol @@ -114,7 +114,7 @@ contract CharacterSystem is System { function enterGame(bytes32 characterId) public { require(_isOwner(characterId), "not your character"); require(!Characters.getLocked(characterId), "you have entered the game"); - + Stats.setLevel(characterId, 1); issueGold(characterId, 5 ether); // issue starterWeapon IWorld(_world()).UD__issueStarterItems(characterId); @@ -122,7 +122,7 @@ contract CharacterSystem is System { Characters.setLocked(characterId, true); } - function getCurrentLevel(uint256 experience) public view returns (uint256 currentLevel) { + function getCurrentAvailableLevel(uint256 experience) public view returns (uint256 currentLevel) { if (experience >= Levels.get(19)) { currentLevel = 20; } else { diff --git a/packages/contracts/src/systems/CombatSystem.sol b/packages/contracts/src/systems/CombatSystem.sol index 8f99997d3..c68e90fba 100644 --- a/packages/contracts/src/systems/CombatSystem.sol +++ b/packages/contracts/src/systems/CombatSystem.sol @@ -35,7 +35,12 @@ import {_requireOwner, _requireAccess} from "../utils.sol"; import {UltimateDominionConfig} from "@codegen/index.sol"; import {IRngSystem} from "../interfaces/IRngSystem.sol"; import { - DEFAULT_MAX_TURNS, TO_HIT_MODIFIER, DEFENSE_MODIFIER, ATTACK_MODIFIER, CRIT_MODIFIER + DEFAULT_MAX_TURNS, + TO_HIT_MODIFIER, + DEFENSE_MODIFIER, + ATTACK_MODIFIER, + CRIT_MODIFIER, + BASE_GOLD_DROP } from "../../constants.sol"; import "forge-std/console2.sol"; @@ -244,11 +249,11 @@ contract CombatSystem is System { uint256 randomNumber ) public returns (int256 damage, bool hit, bool crit) { // get attacker - AdjustedCombatStats memory attacker = IWorld(_world()).UD__applyEquipmentBonuses(attackerId); + AdjustedCombatStats memory attacker = world().UD__applyEquipmentBonuses(attackerId); //get defender - AdjustedCombatStats memory defender = IWorld(_world()).UD__applyEquipmentBonuses(defenderId); + AdjustedCombatStats memory defender = world().UD__applyEquipmentBonuses(defenderId); // get weapon stats - WeaponStats memory weapon = IWorld(_world()).UD__getWeaponStats(weaponId); + WeaponStats memory weapon = world().UD__getWeaponStats(weaponId); if (defender.currentHp > 0) { uint64[] memory rnChunks = LibChunks.get4Chunks(randomNumber); @@ -320,8 +325,31 @@ contract CombatSystem is System { returns (uint256[] memory itemIds, uint256[] memory amounts, uint256 goldAmount) { CombatEncounterData memory encounterData = CombatEncounter.get(encounterId); - //check dead attackers and defenders + // check dead attackers and defenders + uint256 cumulativeAttackerLevels; + for (uint256 i; i < encounterData.attackers.length; i++) { + cumulativeAttackerLevels += Stats.getLevel(encounterData.attackers[i]); + } + + //if cumulative attacker levels is >= 5 levels above the monster level no gold reward. + // for this calculation level is calculated from exp not from actual leveled levels + uint256 goldDrop; + for (uint256 i; i < encounterData.defenders.length; i++) { + uint256 mobLevel = Stats.getLevel(encounterData.defenders[i]); + goldDrop += calculateGoldDrop(mobLevel, randomNumber); + } + // drop gold reward calculated from the level of mob to player journey wallet (can mint tokens when he returns to 0,0). + + // if dead player, drop transfer 50% of un-banked gold to world contract + } + + function calculateGoldDrop(uint256 mobLevel, uint256 randomNumber) public returns (uint256 dropAmount) { + // Calculate level-based drop + + dropAmount = randomNumber % (BASE_GOLD_DROP * mobLevel); + } - //if dead player, drop + function world() internal returns (IWorld world) { + return IWorld(_world()); } } diff --git a/packages/contracts/src/systems/EquipmentSystem.sol b/packages/contracts/src/systems/EquipmentSystem.sol index a4c9a7023..2b8023128 100644 --- a/packages/contracts/src/systems/EquipmentSystem.sol +++ b/packages/contracts/src/systems/EquipmentSystem.sol @@ -99,7 +99,7 @@ contract EquipmentSystem is System { if (uint8(itemData.itemType) == 0) { WeaponStats memory weaponStats = abi.decode(itemData.stats, (WeaponStats)); - bool isLevel = IWorld(_world()).UD__getCurrentLevel(character.experience) >= weaponStats.minLevel; + bool isLevel = character.level >= weaponStats.minLevel; bool isClass; if (weaponStats.classRestrictions.length > 0) { for (uint256 i; i < weaponStats.classRestrictions.length;) { @@ -118,7 +118,7 @@ contract EquipmentSystem is System { } if (uint8(itemData.itemType) == 1) { ArmorStats memory armorStats = abi.decode(itemData.stats, (ArmorStats)); - bool isLevel = IWorld(_world()).UD__getCurrentLevel(character.experience) >= armorStats.minLevel; + bool isLevel = character.level >= armorStats.minLevel; bool isClass; if (armorStats.classRestrictions.length > 0) { for (uint256 i; i < armorStats.classRestrictions.length;) { diff --git a/packages/contracts/test/CombatSystem.t.sol b/packages/contracts/test/CombatSystem.t.sol index d8f9c3863..16e1c02f5 100644 --- a/packages/contracts/test/CombatSystem.t.sol +++ b/packages/contracts/test/CombatSystem.t.sol @@ -89,4 +89,9 @@ contract Test_CombatSystem is SetUp, GasReporter { vm.expectRevert("COMBAT SYSTEM: NON-COMBATANT"); world.UD__endTurn{value: fees}(matchId, bobCharacterId, actions); } + + function test_CalculateGoldDrop() public { + uint256 goldDrop = world.UD__calculateGoldDrop(1, uint256(keccak256("thingy"))); + console2.log(goldDrop); + } } diff --git a/packages/contracts/worlds.json b/packages/contracts/worlds.json index d6eee4f93..82156af55 100644 --- a/packages/contracts/worlds.json +++ b/packages/contracts/worlds.json @@ -1,6 +1,6 @@ { "31337": { - "address": "0x971a5fa566bc3ca474e1f0216d0dd01edc87f096" + "address": "0x566f79ddacda6c02e2e6b4bbaa5ee843961b76c2" }, "84532": { "address": "0x304d17a51415f9ce2a1c3d5213a10c58098b1d44", From 3efa32a09a6d5b3fe38100b84b41b021363c8866 Mon Sep 17 00:00:00 2001 From: MrDeadCe11 Date: Sun, 14 Jul 2024 03:05:57 -0500 Subject: [PATCH 3/8] moved all lot drop functions to loot manager and now gold and exp is dropped when match ends --- .../CharacterSystem.abi.json | 37 +++++++++++++ .../CharacterSystem.abi.json.d.ts | 37 +++++++++++++ .../CharacterSystem.sol/CharacterSystem.json | 2 +- .../contracts/out/IWorld.sol/IWorld.abi.json | 54 +++++++++++++++++++ .../out/IWorld.sol/IWorld.abi.json.d.ts | 54 +++++++++++++++++++ packages/contracts/out/IWorld.sol/IWorld.json | 2 +- .../out/MapSystem.sol/MapSystem.json | 2 +- packages/contracts/script/PostDeploy.s.sol | 7 ++- .../src/codegen/world/IItemsSystem.sol | 4 -- .../world/IUltimateDominionConfigSystem.sol | 2 + .../contracts/src/systems/CharacterSystem.sol | 14 ++--- .../contracts/src/systems/CombatSystem.sol | 43 +++++++++++---- .../contracts/src/systems/ItemsSystem.sol | 31 ++++------- .../systems/UltimateDominionConfigSystem.sol | 7 +++ packages/contracts/src/utils.sol | 13 +++-- packages/contracts/test/CombatSystem.t.sol | 17 ++++-- packages/contracts/test/SetUp.sol | 6 +-- packages/contracts/test/mocks/MockEntropy.sol | 4 +- packages/contracts/worlds.json | 2 +- 19 files changed, 276 insertions(+), 62 deletions(-) diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json index 4de872c84..240197529 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json @@ -372,6 +372,43 @@ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "event", + "name": "Store_SetRecord", + "inputs": [ + { + "name": "tableId", + "type": "bytes32", + "indexed": true, + "internalType": "ResourceId" + }, + { + "name": "keyTuple", + "type": "bytes32[]", + "indexed": false, + "internalType": "bytes32[]" + }, + { + "name": "staticData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + }, + { + "name": "encodedLengths", + "type": "bytes32", + "indexed": false, + "internalType": "EncodedLengths" + }, + { + "name": "dynamicData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, { "type": "event", "name": "Store_SpliceDynamicData", diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts index 6ae3ada59..02df23f8f 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts @@ -372,6 +372,43 @@ declare const abi: [ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "event", + "name": "Store_SetRecord", + "inputs": [ + { + "name": "tableId", + "type": "bytes32", + "indexed": true, + "internalType": "ResourceId" + }, + { + "name": "keyTuple", + "type": "bytes32[]", + "indexed": false, + "internalType": "bytes32[]" + }, + { + "name": "staticData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + }, + { + "name": "encodedLengths", + "type": "bytes32", + "indexed": false, + "internalType": "EncodedLengths" + }, + { + "name": "dynamicData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, { "type": "event", "name": "Store_SpliceDynamicData", diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json index d60562cf4..89006bb05 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506142b5806100206000396000f3fe6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc57806323801570116100e1578063238015701461022b57806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd5780631ecb393f1461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e6101483660046138fe565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b610186366004613917565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b63660046138fe565b61043f565b604051610162919061398d565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613ac8565b61045f565b604051908152602001610162565b34801561021757600080fd5b506101fd6102263660046138fe565b6106c1565b34801561023757600080fd5b5061024b6102463660046138fe565b61073f565b6040516101629190613b21565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b3660046138fe565b61074a565b34801561029c57600080fd5b5061018b6102ab3660046138fe565b610755565b6102c36102be366004613b34565b610881565b005b3480156102d157600080fd5b506101fd6102e03660046138fe565b6109f9565b3480156102f157600080fd5b506102c3610300366004613b71565b610a8e565b34801561031157600080fd5b506102c36103203660046138fe565b610aff565b34801561033157600080fd5b5061014e6103403660046138fe565b610c3c565b34801561035157600080fd5b5061014e610c47565b34801561036657600080fd5b506101fd6103753660046138fe565b610c51565b34801561038657600080fd5b506101fd6103953660046138fe565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6104476138a8565b61043982610c5c565b600061045a610d0e565b905090565b60008061046a610d40565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610c47565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610d73565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401613c08565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106249190810190613c66565b5061062e816109f9565b915061063a8286610dc0565b6106448282610e8f565b61064d84610f0e565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001610fb3565b6106af828561106c565b6106b981846110eb565b509392505050565b60006106cd601361111e565b82106106db57506014919050565b60005b601481101561073957826106f18261111e565b1115801561071057508261070e610709836001613cb1565b61111e565b115b1561072757610720816001613cb1565b9150610739565b8061073181613cc4565b9150506106de565b50919050565b60006104398261119a565b600061043982611244565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d6112d6565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190613cde565b60015b15610862576107f06112d6565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190613cde565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a826112e0565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611372565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e838361142e565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401613cfb565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a400000000000000000000000000000000000000000000000000000000179052611517565b5050505050565b600080610a046112d6565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190613cde565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611372565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff8316826110eb565b5050565b610b0881611372565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d816112e0565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b610bb58160016115c5565b610bc781674563918244f40000611644565b610bcf610c47565b6001600160a01b031663f9d175ed826040518263ffffffff1660e01b8152600401610bfc91815260200190565b600060405180830381600087803b158015610c1657600080fd5b505af1158015610c2a573d6000803e3d6000fd5b50505050610c398160016116df565b50565b600061043982611763565b600061045a611800565b60006104398261180a565b610c646138a8565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610c9a57610c9a613d23565b602090810291909101015260008080610cf37f7462554400000000000000000000000053746174730000000000000000000000857ee108002020012020202020000000000000000000000000000000000000000061189c565b925092509250610d0483838361196c565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610d3d5750335b90565b600080610d4b6119e4565b90506000610d5a826000611a4c565b610d65906001613cb1565b905061043982600083611afd565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611bcd565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610df657610df6613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610e55919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611c45565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610ec557610ec5613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610e5591815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610f4757610f47613d23565b60209081029190910101526000610f9f7f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611cfa565b9050610fab8160f81c90565b949350505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610fe957610fe9613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004e616d6545786973747300000000000060001b8260008560405160200161103791151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611c45565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106110a2576110a2613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610e5591815260200190565b610afb6111177f4368617261637465727300000000000000000000000000000000000000000000611db7565b8383611e04565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b8160008151811061115a5761115a613d23565b60209081029190910101526000610fab7f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611cfa565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106111d3576111d3613d23565b6020908102919091010152600061122c7f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611cfa565b905060f881901c6002811115610fab57610fab613959565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061127d5761127d613d23565b60209081029190910101526000610fab7f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611cfa565b600061045a6119e4565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061131957611319613d23565b60209081029190910101526000610f9f7f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611cfa565b600061137c6112d6565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa1580156113e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140d9190613cde565b6001600160a01b031661141e610450565b6001600160a01b03161492915050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061146457611464613d23565b6020908102919091010152610e8a7f746255440000000000000000000000005374617473000000000000000000000082600285818111156114a7576114a7613959565b6040516020016114e2919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611c45565b606060008061152d61152885613d39565b611e56565b91509150816000801b03611593576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052610fab8285611f26565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115fb576115fb613d23565b602002602001018181525050610e8a7f746255440000000000000000000000005374617473000000000000000000000060001b826007856040516020016114e291815260200190565b61164c612001565b6001600160a01b03166340c10f1961166384610c3c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b1580156116c357600080fd5b505af11580156116d7573d6000803e3d6000fd5b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061171557611715613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610e5591151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061179c5761179c613d23565b602090810291909101015260006117f57f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611cfa565b60601c949350505050565b600061045a61200b565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061184357611843613d23565b60209081029190910101526000610fab7f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611cfa565b60606000606060006118ac61200b565b9050306001600160a01b038216036118d5576118c987878761204a565b93509350935050611963565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061191e908a908a908a90600401613dc5565b600060405180830381865afa15801561193b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118c99190810190613dee565b93509350939050565b6119746138a8565b61197d84612152565b60e0890181905260c0890182905260a0890183905260808901849052606089018590528860208101604082018860028111156119bb576119bb613959565b60028111156119cc576119cc613959565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611a427f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611cfa565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611a9157611a91613d23565b6020026020010181815250508260001b81600181518110611ab457611ab4613d23565b60209081029190910101526000611af47f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611cfa565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611b3e57611b3e613d23565b6020026020010181815250508260001b81600181518110611b6157611b61613d23565b602002602001018181525050611bc77f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611baa91815260200190565b60408051601f19818403018152919052630100080160dd1b611c45565b50505050565b6000611bdb60706010613cb1565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611c4f61200b565b9050306001600160a01b03821603611c7357611c6e86868686866121c0565b6116d7565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611cc09089908990899089908990600401613e51565b600060405180830381600087803b158015611cda57600080fd5b505af1158015611cee573d6000803e3d6000fd5b50505050505050505050565b600080611d0561200b565b9050306001600160a01b03821603611d2b57611d23868686866121d5565b915050610fab565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611d76908990899089908990600401613e98565b602060405180830381865afa158015611d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d239190613ec7565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611bcd565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611e3d57611e3d613d23565b602002602001018181525050611bc78482600085612202565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611eaf57611eaf613d23565b602090810291909101015260008080611f087f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e2402002004000000000000000000000000000000000000000000000000000061189c565b925092509250611f198383836122b3565b9550955050505050915091565b60606000611f32611800565b90506001600160a01b0381163003611f73576000611f5a611f51610d0e565b600087876122cb565b9350905080611f6c57611f6c83612406565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611fba9087908790600401613c08565b6000604051808303816000875af1158015611fd9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fab9190810190613c66565b600061045a61240e565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680612045573391505090565b919050565b606060006060600061205b8561246c565b905061206887878361248f565b93506000612075866124c8565b90508015612147576120878888612505565b935066ffffffffffffff841667ffffffffffffffff8111156120ab576120ab613a03565b6040519080825280601f01601f1916602001820160405280156120d5576020820181803683370190505b5092506020830160005b828160ff1610156121445760006120f78b8b84612518565b90506000612114888460ff166028026038011c64ffffffffff1690565b90506121238260008387612598565b61212d8185613cb1565b93505050808061213c90613ee0565b9150506120df565b50505b505093509350939050565b60008060008060008060008061216c896000016020015190565b60408a015160608b0151919950975060f81c600281111561218f5761218f613959565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f285856121cf8487612664565b85612695565b6000611af46121e48686612939565b60ff858116601b0360080285901c166121fd8587612664565b61298f565b600061220c61200b565b9050306001600160a01b0382160361222f5761222a858585856129e0565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061227a908890889088908890600401613eff565b600060405180830381600087803b15801561229457600080fd5b505af11580156122a8573d6000803e3d6000fd5b505050505050505050565b6000806122bf85612a1b565b90969095509350505050565b600060606000806122db86612a30565b90925090506001600160a01b03821661232c57856122f887612ad4565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190613c08565b8061233b5761233b8689612c02565b86156123a7577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061238f82612c4e565b90506123a48261239f8b84613cb1565b612cc7565b50505b60006123b38760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146123eb576123e688888488612d63565b6123f7565b6123f788888488612ddb565b90999098509650505050505050565b805160208201fd5b604080516000808252602082019092526000611a427f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360017e79070001141414141414000000000000000000000000000000000000000000611cfa565b6000600861247c60026020613f3e565b6124869190613f51565b9190911c919050565b6060816000036124ae5750604080516020810190915260008152611c3e565b60006124ba8585612939565b9050611af481600085612e3c565b600060086001806124db60026020613f3e565b6124e59190613f3e565b6124ef9190613f3e565b6124f99190613f51565b8260ff911c1692915050565b6000611c3e6125148484612e5f565b5490565b6000838360405160200161252d929190613f68565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b821561261f57602083106125c2576020830484019350602083816125be576125be613fa4565b0692505b821561261f5760208390036000818410156125e55750600019600884021c6125ef565b50600019600882021c5b8554600886021b818451168219821617845250818411612610575050611bc7565b50600194909401939182900391015b5b602082106126415783548152600190930192601f1990910190602001612620565b8115611bc7576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761268b60ff601b83900360080287901c1683613cb1565b9150600101612669565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361271f57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161271293929190613fba565b60405180910390a2611bc7565b600061272b8585612939565b9050600061273886612eb5565b905060005b815181101561280d57600082828151811061275a5761275a613d23565b602002602001015190506127866004826affffffffffffffffffffff1916612f3e90919063ffffffff16565b15612804576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906127d1908b908b908b908b90600401613fed565b600060405180830381600087803b1580156127eb57600080fd5b505af11580156127ff573d6000803e3d6000fd5b505050505b5060010161273d565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161284293929190613fba565b60405180910390a261285d828565ffffffffffff1685612f5c565b60005b815181101561293057600082828151811061287d5761287d613d23565b602002602001015190506128a96008826affffffffffffffffffffff1916612f3e90919063ffffffff16565b15612927576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba8721906128f4908b908b908b908b90600401613fed565b600060405180830381600087803b15801561290e57600080fd5b505af1158015612922573d6000803e3d6000fd5b505050505b50600101612860565b50505050505050565b6000828260405160200161294e929190613f68565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6000602082106129b5576020820484019350602082816129b1576129b1613fa4565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b60006129ec8585612505565b90506000612a09828560ff166028026038011c64ffffffffff1690565b90506116d78686866000858888612f72565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612a6a57612a6a613d23565b602090810291909101015260008080612ac37f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061204a565b925092509250611f198383836133ac565b606081601081901b6000612ae7836133b8565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612b4257612b3d7fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133cf565b612b79565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612ba057612b9b836133cf565b612bd7565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612be993929190614026565b6040516020818303038152906040529350505050919050565b612c0c8282613455565b610afb57612c1982612ad4565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e99291906140b4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612c8757612c87613d23565b60209081029190910101526000610fab7f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6121d5565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612cfd57612cfd613d23565b602002602001018181525050610e8a7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612d4691815260200190565b60408051601f19818403018152919052630100080160dd1b6121c0565b60006060836001600160a01b03166000612d7e8589896134b3565b604051612d8b91906140df565b60006040518083038185875af1925050503d8060008114612dc8576040519150601f19603f3d011682016040523d82523d6000602084013e612dcd565b606091505b509097909650945050505050565b60006060836001600160a01b0316612df48488886134b3565b604051612e0191906140df565b600060405180830381855af49150503d8060008114612dc8576040519150601f19603f3d011682016040523d82523d6000602084013e612dcd565b60405160208101601f19603f84840101166040528282526106b985858584612598565b60008282604051602001612e74929190613f68565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612eef57612eef613d23565b60209081029190910101526000612f277f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836134e2565b9050610fab612f39826000845161351c565b6135aa565b60008160ff1682612f4f8560581c90565b1660ff1614905092915050565b610e8a83838351612f6d8560200190565b6135bb565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614613032577f74620000000000000000000000000000000000000000000000000000000000008788604051602001612ff091815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e99392916004016140fb565b600061304d828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836130669190613f3e565b6130709190613cb1565b9050808214158015613092575081613088868861413c565b64ffffffffff1614155b156130e2576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff161115613133576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b600061314084898461367a565b9050600061314d8b612eb5565b905060005b815181101561321857600082828151811061316f5761316f613d23565b6020026020010151905061319b6010826affffffffffffffffffffff1916612f3e90919063ffffffff16565b1561320f57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016131dc9796959493929190614161565b600060405180830381600087803b1580156131f657600080fd5b505af115801561320a573d6000803e3d6000fd5b505050505b50600101613152565b5064ffffffffff881660005b8a60ff168160ff1610156132575761324b878260ff166028026038011c64ffffffffff1690565b90910190600101613224565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d604051613292969594939291906141bf565b60405180910390a2508284146132b35760006132ae8c8c612e5f565b839055505b60006132c08c8c8c612518565b90506132d4818a64ffffffffff1689612f5c565b5060005b815181101561339e5760008282815181106132f5576132f5613d23565b602002602001015190506133216020826affffffffffffffffffffff1916612f3e90919063ffffffff16565b1561339557606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016133629796959493929190614161565b600060405180830381600087803b15801561337c57600080fd5b505af1158015613390573d6000803e3d6000fd5b505050505b506001016132d8565b505050505050505050505050565b6000806122bf85613748565b60006133c660706010613cb1565b9190911b919050565b606060005b6010811015613425576fffffffffffffffffffffffffffffffff198316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613425576001016133d4565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610fab565b60006134a37f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613764565b80611c3e5750611c3e8383613764565b60608383836040516020016134ca9392919061421b565b60405160208183030381529060405290509392505050565b6060610fab6134f2858585612518565b6000613517856135028989612505565b9060ff166028026038011c64ffffffffff1690565b612e3c565b60008183118061352c5750835182115b15613569578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e99392919061425a565b602084016135778482613cb1565b905060006135858585613f3e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611c3e836015600061382d565b821561363557602083106135e5576020830484019350602083816135e1576135e1613fa4565b0692505b82156136355760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613626575050611bc7565b50600194909401939182900391015b5b602082106136575780518455600190930192601f1990910190602001613636565b8115611bc7576000600019600884021c8554835182191691161785555050505050565b600064ffffffffff8211156136be576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff168085106136f057808503820191506136f8565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612a29565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061379d5761379d613d23565b602002602001018181525050826001600160a01b031660001b816001815181106137c9576137c9613d23565b602090810291909101015260006138217f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006121d5565b9050611af48160f81c90565b6060600061383b8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161386157613861613fa4565b04905060405193506020840160208202810160405281855260005b8281101561389c578451871c82529387019360209091019060010161387c565b50505050509392505050565b6040518061010001604052806000815260200160008152602001600060028111156138d5576138d5613959565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561391057600080fd5b5035919050565b60006020828403121561392957600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c3e57600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110610c3957634e487b7160e01b600052602160045260246000fd5b815181526020808301519082015260408201516101008201906139af8161396f565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114610c3957600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613a4257613a42613a03565b604052919050565b600067ffffffffffffffff821115613a6457613a64613a03565b50601f01601f191660200190565b600082601f830112613a8357600080fd5b8135613a96613a9182613a4a565b613a19565b818152846020838601011115613aab57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613add57600080fd5b8335613ae8816139ee565b925060208401359150604084013567ffffffffffffffff811115613b0b57600080fd5b613b1786828701613a72565b9150509250925092565b60208101613b2e8361396f565b91905290565b600080600060608486031215613b4957600080fd5b8335925060208401359150604084013560038110613b6657600080fd5b809150509250925092565b60008060408385031215613b8457600080fd5b82359150602083013567ffffffffffffffff811115613ba257600080fd5b613bae85828601613a72565b9150509250929050565b60005b83811015613bd3578181015183820152602001613bbb565b50506000910152565b60008151808452613bf4816020860160208601613bb8565b601f01601f19169290920160200192915050565b828152604060208201526000610fab6040830184613bdc565b600082601f830112613c3257600080fd5b8151613c40613a9182613a4a565b818152846020838601011115613c5557600080fd5b610fab826020830160208701613bb8565b600060208284031215613c7857600080fd5b815167ffffffffffffffff811115613c8f57600080fd5b610fab84828501613c21565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439613c9b565b60006000198203613cd757613cd7613c9b565b5060010190565b600060208284031215613cf057600080fd5b8151611c3e816139ee565b838152613d078361396f565b826020820152606060408201526000611af46060830184613bdc565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613d815780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b83811015613dba57815187529582019590820190600101613d9e565b509495945050505050565b838152606060208201526000613dde6060830185613d89565b9050826040830152949350505050565b600080600060608486031215613e0357600080fd5b835167ffffffffffffffff80821115613e1b57600080fd5b613e2787838801613c21565b9450602086015193506040860151915080821115613e4457600080fd5b50613b1786828701613c21565b85815260a060208201526000613e6a60a0830187613d89565b60ff861660408401528281036060840152613e858186613bdc565b9150508260808301529695505050505050565b848152608060208201526000613eb16080830186613d89565b60ff949094166040830152506060015292915050565b600060208284031215613ed957600080fd5b5051919050565b600060ff821660ff8103613ef657613ef6613c9b565b60010192915050565b848152608060208201526000613f186080830186613d89565b60ff851660408401528281036060840152613f338185613bdc565b979650505050505050565b8181038181111561043957610439613c9b565b808202811582820484141761043957610439613c9b565b8281526000602080830184516020860160005b82811015613f9757815184529284019290840190600101613f7b565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b606081526000613fcd6060830186613d89565b65ffffffffffff851660208401528281036040840152610d048185613bdc565b8481526080602082015260006140066080830186613d89565b65ffffffffffff851660408401528281036060840152613f338185613bdc565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451614087816003860160208901613bb8565b8084019050816003820152845191506140a7826004830160208801613bb8565b0160040195945050505050565b6040815260006140c76040830185613bdc565b90506001600160a01b03831660208301529392505050565b600082516140f1818460208701613bb8565b9190910192915050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611af46060830184613bdc565b64ffffffffff81811683821601908082111561415a5761415a613c9b565b5092915050565b87815260e06020820152600061417a60e0830189613d89565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526141b18185613bdc565b9a9950505050505050505050565b60c0815260006141d260c0830189613d89565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a084015261420e8185613bdc565b9998505050505050505050565b6000845161422d818460208901613bb8565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b60608152600061426d6060830186613bdc565b6020830194909452506040015291905056fea2646970667358221220cc2c999bb62d1901c8a36d533ae7900d907ca296c84edf127300cdf207faff5864736f6c63430008180033","sourceMap":"1738:5989:198:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc57806323801570116100e1578063238015701461022b57806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd5780631ecb393f1461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e6101483660046138fe565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b610186366004613917565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b63660046138fe565b61043f565b604051610162919061398d565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613ac8565b61045f565b604051908152602001610162565b34801561021757600080fd5b506101fd6102263660046138fe565b6106c1565b34801561023757600080fd5b5061024b6102463660046138fe565b61073f565b6040516101629190613b21565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b3660046138fe565b61074a565b34801561029c57600080fd5b5061018b6102ab3660046138fe565b610755565b6102c36102be366004613b34565b610881565b005b3480156102d157600080fd5b506101fd6102e03660046138fe565b6109f9565b3480156102f157600080fd5b506102c3610300366004613b71565b610a8e565b34801561031157600080fd5b506102c36103203660046138fe565b610aff565b34801561033157600080fd5b5061014e6103403660046138fe565b610c3c565b34801561035157600080fd5b5061014e610c47565b34801561036657600080fd5b506101fd6103753660046138fe565b610c51565b34801561038657600080fd5b506101fd6103953660046138fe565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6104476138a8565b61043982610c5c565b600061045a610d0e565b905090565b60008061046a610d40565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610c47565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610d73565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401613c08565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106249190810190613c66565b5061062e816109f9565b915061063a8286610dc0565b6106448282610e8f565b61064d84610f0e565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001610fb3565b6106af828561106c565b6106b981846110eb565b509392505050565b60006106cd601361111e565b82106106db57506014919050565b60005b601481101561073957826106f18261111e565b1115801561071057508261070e610709836001613cb1565b61111e565b115b1561072757610720816001613cb1565b9150610739565b8061073181613cc4565b9150506106de565b50919050565b60006104398261119a565b600061043982611244565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d6112d6565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190613cde565b60015b15610862576107f06112d6565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190613cde565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a826112e0565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611372565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e838361142e565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401613cfb565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a400000000000000000000000000000000000000000000000000000000179052611517565b5050505050565b600080610a046112d6565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190613cde565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611372565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff8316826110eb565b5050565b610b0881611372565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d816112e0565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b610bb58160016115c5565b610bc781674563918244f40000611644565b610bcf610c47565b6001600160a01b031663f9d175ed826040518263ffffffff1660e01b8152600401610bfc91815260200190565b600060405180830381600087803b158015610c1657600080fd5b505af1158015610c2a573d6000803e3d6000fd5b50505050610c398160016116df565b50565b600061043982611763565b600061045a611800565b60006104398261180a565b610c646138a8565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610c9a57610c9a613d23565b602090810291909101015260008080610cf37f7462554400000000000000000000000053746174730000000000000000000000857ee108002020012020202020000000000000000000000000000000000000000061189c565b925092509250610d0483838361196c565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610d3d5750335b90565b600080610d4b6119e4565b90506000610d5a826000611a4c565b610d65906001613cb1565b905061043982600083611afd565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611bcd565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610df657610df6613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610e55919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611c45565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610ec557610ec5613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610e5591815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610f4757610f47613d23565b60209081029190910101526000610f9f7f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611cfa565b9050610fab8160f81c90565b949350505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610fe957610fe9613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004e616d6545786973747300000000000060001b8260008560405160200161103791151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611c45565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106110a2576110a2613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610e5591815260200190565b610afb6111177f4368617261637465727300000000000000000000000000000000000000000000611db7565b8383611e04565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b8160008151811061115a5761115a613d23565b60209081029190910101526000610fab7f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611cfa565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106111d3576111d3613d23565b6020908102919091010152600061122c7f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611cfa565b905060f881901c6002811115610fab57610fab613959565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061127d5761127d613d23565b60209081029190910101526000610fab7f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611cfa565b600061045a6119e4565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061131957611319613d23565b60209081029190910101526000610f9f7f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611cfa565b600061137c6112d6565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa1580156113e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140d9190613cde565b6001600160a01b031661141e610450565b6001600160a01b03161492915050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061146457611464613d23565b6020908102919091010152610e8a7f746255440000000000000000000000005374617473000000000000000000000082600285818111156114a7576114a7613959565b6040516020016114e2919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611c45565b606060008061152d61152885613d39565b611e56565b91509150816000801b03611593576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682179052610fab8285611f26565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115fb576115fb613d23565b602002602001018181525050610e8a7f746255440000000000000000000000005374617473000000000000000000000060001b826007856040516020016114e291815260200190565b61164c612001565b6001600160a01b03166340c10f1961166384610c3c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b1580156116c357600080fd5b505af11580156116d7573d6000803e3d6000fd5b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061171557611715613d23565b602002602001018181525050610e8a7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610e5591151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061179c5761179c613d23565b602090810291909101015260006117f57f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611cfa565b60601c949350505050565b600061045a61200b565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061184357611843613d23565b60209081029190910101526000610fab7f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611cfa565b60606000606060006118ac61200b565b9050306001600160a01b038216036118d5576118c987878761204a565b93509350935050611963565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061191e908a908a908a90600401613dc5565b600060405180830381865afa15801561193b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118c99190810190613dee565b93509350939050565b6119746138a8565b61197d84612152565b60e0890181905260c0890182905260a0890183905260808901849052606089018590528860208101604082018860028111156119bb576119bb613959565b60028111156119cc576119cc613959565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611a427f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611cfa565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611a9157611a91613d23565b6020026020010181815250508260001b81600181518110611ab457611ab4613d23565b60209081029190910101526000611af47f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611cfa565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611b3e57611b3e613d23565b6020026020010181815250508260001b81600181518110611b6157611b61613d23565b602002602001018181525050611bc77f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611baa91815260200190565b60408051601f19818403018152919052630100080160dd1b611c45565b50505050565b6000611bdb60706010613cb1565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611c4f61200b565b9050306001600160a01b03821603611c7357611c6e86868686866121c0565b6116d7565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611cc09089908990899089908990600401613e51565b600060405180830381600087803b158015611cda57600080fd5b505af1158015611cee573d6000803e3d6000fd5b50505050505050505050565b600080611d0561200b565b9050306001600160a01b03821603611d2b57611d23868686866121d5565b915050610fab565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611d76908990899089908990600401613e98565b602060405180830381865afa158015611d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d239190613ec7565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611bcd565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611e3d57611e3d613d23565b602002602001018181525050611bc78482600085612202565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611eaf57611eaf613d23565b602090810291909101015260008080611f087f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e2402002004000000000000000000000000000000000000000000000000000061189c565b925092509250611f198383836122b3565b9550955050505050915091565b60606000611f32611800565b90506001600160a01b0381163003611f73576000611f5a611f51610d0e565b600087876122cb565b9350905080611f6c57611f6c83612406565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611fba9087908790600401613c08565b6000604051808303816000875af1158015611fd9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fab9190810190613c66565b600061045a61240e565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680612045573391505090565b919050565b606060006060600061205b8561246c565b905061206887878361248f565b93506000612075866124c8565b90508015612147576120878888612505565b935066ffffffffffffff841667ffffffffffffffff8111156120ab576120ab613a03565b6040519080825280601f01601f1916602001820160405280156120d5576020820181803683370190505b5092506020830160005b828160ff1610156121445760006120f78b8b84612518565b90506000612114888460ff166028026038011c64ffffffffff1690565b90506121238260008387612598565b61212d8185613cb1565b93505050808061213c90613ee0565b9150506120df565b50505b505093509350939050565b60008060008060008060008061216c896000016020015190565b60408a015160608b0151919950975060f81c600281111561218f5761218f613959565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f285856121cf8487612664565b85612695565b6000611af46121e48686612939565b60ff858116601b0360080285901c166121fd8587612664565b61298f565b600061220c61200b565b9050306001600160a01b0382160361222f5761222a858585856129e0565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061227a908890889088908890600401613eff565b600060405180830381600087803b15801561229457600080fd5b505af11580156122a8573d6000803e3d6000fd5b505050505050505050565b6000806122bf85612a1b565b90969095509350505050565b600060606000806122db86612a30565b90925090506001600160a01b03821661232c57856122f887612ad4565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190613c08565b8061233b5761233b8689612c02565b86156123a7577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061238f82612c4e565b90506123a48261239f8b84613cb1565b612cc7565b50505b60006123b38760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146123eb576123e688888488612d63565b6123f7565b6123f788888488612ddb565b90999098509650505050505050565b805160208201fd5b604080516000808252602082019092526000611a427f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360017e79070001141414141414000000000000000000000000000000000000000000611cfa565b6000600861247c60026020613f3e565b6124869190613f51565b9190911c919050565b6060816000036124ae5750604080516020810190915260008152611c3e565b60006124ba8585612939565b9050611af481600085612e3c565b600060086001806124db60026020613f3e565b6124e59190613f3e565b6124ef9190613f3e565b6124f99190613f51565b8260ff911c1692915050565b6000611c3e6125148484612e5f565b5490565b6000838360405160200161252d929190613f68565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b821561261f57602083106125c2576020830484019350602083816125be576125be613fa4565b0692505b821561261f5760208390036000818410156125e55750600019600884021c6125ef565b50600019600882021c5b8554600886021b818451168219821617845250818411612610575050611bc7565b50600194909401939182900391015b5b602082106126415783548152600190930192601f1990910190602001612620565b8115611bc7576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761268b60ff601b83900360080287901c1683613cb1565b9150600101612669565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361271f57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161271293929190613fba565b60405180910390a2611bc7565b600061272b8585612939565b9050600061273886612eb5565b905060005b815181101561280d57600082828151811061275a5761275a613d23565b602002602001015190506127866004826affffffffffffffffffffff1916612f3e90919063ffffffff16565b15612804576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906127d1908b908b908b908b90600401613fed565b600060405180830381600087803b1580156127eb57600080fd5b505af11580156127ff573d6000803e3d6000fd5b505050505b5060010161273d565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161284293929190613fba565b60405180910390a261285d828565ffffffffffff1685612f5c565b60005b815181101561293057600082828151811061287d5761287d613d23565b602002602001015190506128a96008826affffffffffffffffffffff1916612f3e90919063ffffffff16565b15612927576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba8721906128f4908b908b908b908b90600401613fed565b600060405180830381600087803b15801561290e57600080fd5b505af1158015612922573d6000803e3d6000fd5b505050505b50600101612860565b50505050505050565b6000828260405160200161294e929190613f68565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6000602082106129b5576020820484019350602082816129b1576129b1613fa4565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b60006129ec8585612505565b90506000612a09828560ff166028026038011c64ffffffffff1690565b90506116d78686866000858888612f72565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612a6a57612a6a613d23565b602090810291909101015260008080612ac37f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061204a565b925092509250611f198383836133ac565b606081601081901b6000612ae7836133b8565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612b4257612b3d7fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133cf565b612b79565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612ba057612b9b836133cf565b612bd7565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612be993929190614026565b6040516020818303038152906040529350505050919050565b612c0c8282613455565b610afb57612c1982612ad4565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e99291906140b4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612c8757612c87613d23565b60209081029190910101526000610fab7f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6121d5565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612cfd57612cfd613d23565b602002602001018181525050610e8a7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612d4691815260200190565b60408051601f19818403018152919052630100080160dd1b6121c0565b60006060836001600160a01b03166000612d7e8589896134b3565b604051612d8b91906140df565b60006040518083038185875af1925050503d8060008114612dc8576040519150601f19603f3d011682016040523d82523d6000602084013e612dcd565b606091505b509097909650945050505050565b60006060836001600160a01b0316612df48488886134b3565b604051612e0191906140df565b600060405180830381855af49150503d8060008114612dc8576040519150601f19603f3d011682016040523d82523d6000602084013e612dcd565b60405160208101601f19603f84840101166040528282526106b985858584612598565b60008282604051602001612e74929190613f68565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612eef57612eef613d23565b60209081029190910101526000612f277f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836134e2565b9050610fab612f39826000845161351c565b6135aa565b60008160ff1682612f4f8560581c90565b1660ff1614905092915050565b610e8a83838351612f6d8560200190565b6135bb565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614613032577f74620000000000000000000000000000000000000000000000000000000000008788604051602001612ff091815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e99392916004016140fb565b600061304d828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836130669190613f3e565b6130709190613cb1565b9050808214158015613092575081613088868861413c565b64ffffffffff1614155b156130e2576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff161115613133576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b600061314084898461367a565b9050600061314d8b612eb5565b905060005b815181101561321857600082828151811061316f5761316f613d23565b6020026020010151905061319b6010826affffffffffffffffffffff1916612f3e90919063ffffffff16565b1561320f57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016131dc9796959493929190614161565b600060405180830381600087803b1580156131f657600080fd5b505af115801561320a573d6000803e3d6000fd5b505050505b50600101613152565b5064ffffffffff881660005b8a60ff168160ff1610156132575761324b878260ff166028026038011c64ffffffffff1690565b90910190600101613224565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d604051613292969594939291906141bf565b60405180910390a2508284146132b35760006132ae8c8c612e5f565b839055505b60006132c08c8c8c612518565b90506132d4818a64ffffffffff1689612f5c565b5060005b815181101561339e5760008282815181106132f5576132f5613d23565b602002602001015190506133216020826affffffffffffffffffffff1916612f3e90919063ffffffff16565b1561339557606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016133629796959493929190614161565b600060405180830381600087803b15801561337c57600080fd5b505af1158015613390573d6000803e3d6000fd5b505050505b506001016132d8565b505050505050505050505050565b6000806122bf85613748565b60006133c660706010613cb1565b9190911b919050565b606060005b6010811015613425576fffffffffffffffffffffffffffffffff198316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613425576001016133d4565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280610fab565b60006134a37f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613764565b80611c3e5750611c3e8383613764565b60608383836040516020016134ca9392919061421b565b60405160208183030381529060405290509392505050565b6060610fab6134f2858585612518565b6000613517856135028989612505565b9060ff166028026038011c64ffffffffff1690565b612e3c565b60008183118061352c5750835182115b15613569578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e99392919061425a565b602084016135778482613cb1565b905060006135858585613f3e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611c3e836015600061382d565b821561363557602083106135e5576020830484019350602083816135e1576135e1613fa4565b0692505b82156136355760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613626575050611bc7565b50600194909401939182900391015b5b602082106136575780518455600190930192601f1990910190602001613636565b8115611bc7576000600019600884021c8554835182191691161785555050505050565b600064ffffffffff8211156136be576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff168085106136f057808503820191506136f8565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612a29565b60408051600280825260608201835260009283929190602083019080368337019050509050838160008151811061379d5761379d613d23565b602002602001018181525050826001600160a01b031660001b816001815181106137c9576137c9613d23565b602090810291909101015260006138217f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006121d5565b9050611af48160f81c90565b6060600061383b8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161386157613861613fa4565b04905060405193506020840160208202810160405281855260005b8281101561389c578451871c82529387019360209091019060010161387c565b50505050509392505050565b6040518061010001604052806000815260200160008152602001600060028111156138d5576138d5613959565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561391057600080fd5b5035919050565b60006020828403121561392957600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c3e57600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110610c3957634e487b7160e01b600052602160045260246000fd5b815181526020808301519082015260408201516101008201906139af8161396f565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114610c3957600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613a4257613a42613a03565b604052919050565b600067ffffffffffffffff821115613a6457613a64613a03565b50601f01601f191660200190565b600082601f830112613a8357600080fd5b8135613a96613a9182613a4a565b613a19565b818152846020838601011115613aab57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613add57600080fd5b8335613ae8816139ee565b925060208401359150604084013567ffffffffffffffff811115613b0b57600080fd5b613b1786828701613a72565b9150509250925092565b60208101613b2e8361396f565b91905290565b600080600060608486031215613b4957600080fd5b8335925060208401359150604084013560038110613b6657600080fd5b809150509250925092565b60008060408385031215613b8457600080fd5b82359150602083013567ffffffffffffffff811115613ba257600080fd5b613bae85828601613a72565b9150509250929050565b60005b83811015613bd3578181015183820152602001613bbb565b50506000910152565b60008151808452613bf4816020860160208601613bb8565b601f01601f19169290920160200192915050565b828152604060208201526000610fab6040830184613bdc565b600082601f830112613c3257600080fd5b8151613c40613a9182613a4a565b818152846020838601011115613c5557600080fd5b610fab826020830160208701613bb8565b600060208284031215613c7857600080fd5b815167ffffffffffffffff811115613c8f57600080fd5b610fab84828501613c21565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439613c9b565b60006000198203613cd757613cd7613c9b565b5060010190565b600060208284031215613cf057600080fd5b8151611c3e816139ee565b838152613d078361396f565b826020820152606060408201526000611af46060830184613bdc565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613d815780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b83811015613dba57815187529582019590820190600101613d9e565b509495945050505050565b838152606060208201526000613dde6060830185613d89565b9050826040830152949350505050565b600080600060608486031215613e0357600080fd5b835167ffffffffffffffff80821115613e1b57600080fd5b613e2787838801613c21565b9450602086015193506040860151915080821115613e4457600080fd5b50613b1786828701613c21565b85815260a060208201526000613e6a60a0830187613d89565b60ff861660408401528281036060840152613e858186613bdc565b9150508260808301529695505050505050565b848152608060208201526000613eb16080830186613d89565b60ff949094166040830152506060015292915050565b600060208284031215613ed957600080fd5b5051919050565b600060ff821660ff8103613ef657613ef6613c9b565b60010192915050565b848152608060208201526000613f186080830186613d89565b60ff851660408401528281036060840152613f338185613bdc565b979650505050505050565b8181038181111561043957610439613c9b565b808202811582820484141761043957610439613c9b565b8281526000602080830184516020860160005b82811015613f9757815184529284019290840190600101613f7b565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b606081526000613fcd6060830186613d89565b65ffffffffffff851660208401528281036040840152610d048185613bdc565b8481526080602082015260006140066080830186613d89565b65ffffffffffff851660408401528281036060840152613f338185613bdc565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451614087816003860160208901613bb8565b8084019050816003820152845191506140a7826004830160208801613bb8565b0160040195945050505050565b6040815260006140c76040830185613bdc565b90506001600160a01b03831660208301529392505050565b600082516140f1818460208701613bb8565b9190910192915050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611af46060830184613bdc565b64ffffffffff81811683821601908082111561415a5761415a613c9b565b5092915050565b87815260e06020820152600061417a60e0830189613d89565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526141b18185613bdc565b9a9950505050505050505050565b60c0815260006141d260c0830189613d89565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a084015261420e8185613bdc565b9998505050505050505050565b6000845161422d818460208901613bb8565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b60608152600061426d6060830186613bdc565b6020830194909452506040015291905056fea2646970667358221220cc2c999bb62d1901c8a36d533ae7900d907ca296c84edf127300cdf207faff5864736f6c63430008180033","sourceMap":"1738:5989:198:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:144;;;;;;;;;;-1:-1:-1;2899:144:198;;;;;:::i;:::-;3032:2;3008:26;;2899:144;;;;-1:-1:-1;;;;;363:55:202;;;345:74;;333:2;318:18;2899:144:198;;;;;;;;2331:198:117;;;;;;;;;;-1:-1:-1;2331:198:117;;;;;:::i;:::-;;:::i;:::-;;;932:14:202;;925:22;907:41;;895:2;880:18;2331:198:117;767:187:202;7601:124:198;;;;;;;;;;-1:-1:-1;7601:124:198;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:117:-;;;;;;;;;;;;;:::i;3819:837:198:-;;;;;;;;;;-1:-1:-1;3819:837:198;;;;;:::i;:::-;;:::i;:::-;;;4284:25:202;;;4272:2;4257:18;3819:837:198;4138:177:202;5640:492:198;;;;;;;;;;-1:-1:-1;5640:492:198;;;;;:::i;:::-;;:::i;1915:129::-;;;;;;;;;;-1:-1:-1;1915:129:198;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:117:-;;;;;;;;;;-1:-1:-1;3800:14:117;-1:-1:-1;;3796:25:117;3783:39;1616:110;1262:113;1779:130:198;;;;;;;;;;-1:-1:-1;1779:130:198;;;;;:::i;:::-;;:::i;3049:413::-;;;;;;;;;;-1:-1:-1;3049:413:198;;;;;:::i;:::-;;:::i;4662:545::-;;;;;;:::i;:::-;;:::i;:::-;;2386:266;;;;;;;;;;-1:-1:-1;2386:266:198;;;;;:::i;:::-;;:::i;6138:219::-;;;;;;;;;;-1:-1:-1;6138:219:198;;;;;:::i;:::-;;:::i;5213:421::-;;;;;;;;;;-1:-1:-1;5213:421:198;;;;;:::i;:::-;;:::i;7203:125::-;;;;;;;;;;-1:-1:-1;7203:125:198;;;;;:::i;:::-;;:::i;1942:98:117:-;;;;;;;;;;;;;:::i;7465:130:198:-;;;;;;;;;;-1:-1:-1;7465:130:198;;;;;:::i;:::-;;:::i;2658:143::-;;;;;;;;;;-1:-1:-1;2658:143:198;;;;;:::i;:::-;2756:37;;;2658:143;2331:198:117;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:117;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:117:o;7601:124:198:-;7661:16;;:::i;:::-;7696:22;7706:11;7696:9;:22::i;1262:113:117:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;3819:837:198:-;3929:19;3964:24;3991:28;:26;:28::i;:::-;3964:55;-1:-1:-1;4056:16:198;4037:35;;4029:83;;;;-1:-1:-1;;;4029:83:198;;5933:2:202;4029:83:198;;;5915:21:202;5972:2;5952:18;;;5945:30;6011:34;5991:18;;;5984:62;6082:5;6062:18;;;6055:33;6105:19;;4029:83:198;;;;;;;;;4129:8;:6;:8::i;:::-;-1:-1:-1;;;;;4122:21:198;;4157:37;4173:20;4157:15;:37::i;:::-;4196:65;;-1:-1:-1;;;;;6327:55:202;;4196:65:198;;;6309:74:202;6399:18;;;6392:34;;;6282:18;;4196:65:198;;;-1:-1:-1;;4196:65:198;;;;;;;;;;;;;;;;;;;;4122:149;;4196:65;4122:149;;;;;;;;;4196:65;4122:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4122:149:198;;;;;;;;;;;;:::i;:::-;;4295:35;4313:16;4295:17;:35::i;:::-;4281:49;;4340:41;4360:11;4373:7;4340:19;:41::i;:::-;4391:52;4413:11;4426:16;4391:21;:52::i;:::-;4462:25;4482:4;4462:19;:25::i;:::-;4461:26;4453:58;;;;-1:-1:-1;;;4453:58:198;;8340:2:202;4453:58:198;;;8322:21:202;8379:2;8359:18;;;8352:30;8418:21;8398:18;;;8391:49;8457:18;;4453:58:198;8138:343:202;4453:58:198;4521:31;4541:4;4547;4521:19;:31::i;:::-;4562:37;4581:11;4594:4;4562:18;:37::i;:::-;4609:40;4622:16;4640:8;4609:12;:40::i;:::-;3954:702;3819:837;;;;;:::o;5640:492::-;5715:20;5765:14;5776:2;5765:10;:14::i;:::-;5751:10;:28;5747:379;;-1:-1:-1;5810:2:198;5640:492;;;:::o;5747:379::-;5848:9;5843:273;5863:2;5859:1;:6;5843:273;;;5907:10;5890:13;5901:1;5890:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;5941:10:198;5921:17;5932:5;:1;5936;5932:5;:::i;:::-;5921:10;:17::i;:::-;:30;5890:61;5886:155;;;5990:5;:1;5994;5990:5;:::i;:::-;5975:20;;6017:5;;5886:155;6080:3;;;;:::i;:::-;;;;5843:273;;;;5640:492;;;:::o;1915:129::-;1975:14;2010:27;2025:11;2010:14;:27::i;1779:130::-;1838:13;1871:31;1890:11;1871:18;:31::i;3049:413::-;3119:4;3135:20;3158:28;3174:11;3032:2;3008:26;;2899:144;3158:28;3135:51;-1:-1:-1;2756:37:198;;;3196:15;3285:17;:15;:17::i;:::-;-1:-1:-1;;;;;3285:25:198;;3311:7;3285:34;;;;;;;;;;;;;4284:25:202;;4272:2;4257:18;;4138:177;3285:34:198;;;;;;;;;;;;;;;;;;;-1:-1:-1;3285:34:198;;;;;;;;-1:-1:-1;;3285:34:198;;;;;;;;;;;;:::i;:::-;;;3281:135;;;3362:17;:15;:17::i;:::-;-1:-1:-1;;;;;3362:25:198;;3388:7;3362:34;;;;;;;;;;;;;4284:25:202;;4272:2;4257:18;;4138:177;3362:34:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3352:44;;3320:87;3281:135;3443:12;-1:-1:-1;;;;;3432:23:198;:7;-1:-1:-1;;;;;3432:23:198;;3425:30;;;;;3049:413;;;:::o;4662:545::-;4777:33;4798:11;4777:20;:33::i;:::-;4776:34;4768:90;;;;-1:-1:-1;;;4768:90:198;;9463:2:202;4768:90:198;;;9445:21:202;9502:2;9482:18;;;9475:30;9541:34;9521:18;;;9514:62;9612:13;9592:18;;;9585:41;9643:19;;4768:90:198;9261:407:202;4768:90:198;4876:21;4885:11;4876:8;:21::i;:::-;4868:53;;;;-1:-1:-1;;;4868:53:198;;9875:2:202;4868:53:198;;;9857:21:202;9914:2;9894:18;;;9887:30;9953:21;9933:18;;;9926:49;9992:18;;4868:53:198;9673:343:202;4868:53:198;4931:26;4999:34;5014:11;5027:5;4999:14;:34::i;:::-;5090:110;5143:16;5161:11;5185;5174:23;;;;;;4284:25:202;;4272:2;4257:18;;4138:177;5174:23:198;;;;-1:-1:-1;;5174:23:198;;;;;;;;;;5108:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5108:91:198;;;;;;;;;;;;;;;;;;;;5090:17;:110::i;:::-;;4758:449;4662:545;;;:::o;2386:266::-;2460:19;2491:20;2514:17;:15;:17::i;:::-;-1:-1:-1;;;;;2514:25:198;;2540:16;2514:43;;;;;;;;;;;;;4284:25:202;;4272:2;4257:18;;4138:177;2514:43:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2623:2;2589:36;-1:-1:-1;;2589:36:198;:55;;;;;;-1:-1:-1;;2386:266:198:o;6138:219::-;6232:21;6241:11;6232:8;:21::i;:::-;6224:60;;;;-1:-1:-1;;;6224:60:198;;10651:2:202;6224:60:198;;;10633:21:202;10690:2;10670:18;;;10663:30;10729:28;10709:18;;;10702:56;10775:18;;6224:60:198;10449:350:202;6224:60:198;6294:56;2756:37;;;6341:8;6294:12;:56::i;:::-;6138:219;;:::o;5213:421::-;5278:21;5287:11;5278:8;:21::i;:::-;5270:52;;;;-1:-1:-1;;;5270:52:198;;11006:2:202;5270:52:198;;;10988:21:202;11045:2;11025:18;;;11018:30;11084:20;11064:18;;;11057:48;11122:18;;5270:52:198;10804:342:202;5270:52:198;5341:33;5362:11;5341:20;:33::i;:::-;5340:34;5332:72;;;;-1:-1:-1;;;5332:72:198;;11353:2:202;5332:72:198;;;11335:21:202;11392:2;11372:18;;;11365:30;11431:27;11411:18;;;11404:55;11476:18;;5332:72:198;11151:349:202;5332:72:198;5414:30;5429:11;5442:1;5414:14;:30::i;:::-;5454:31;5464:11;5477:7;5454:9;:31::i;:::-;5533:8;:6;:8::i;:::-;-1:-1:-1;;;;;5526:38:198;;5565:11;5526:51;;;;;;;;;;;;;4284:25:202;;4272:2;4257:18;;4138:177;5526:51:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5588:39;5609:11;5622:4;5588:20;:39::i;:::-;5213:421;:::o;7203:125::-;7263:7;7289:32;7309:11;7289:19;:32::i;1942:98:117:-;1981:7;2003:32;:30;:32::i;7465:130:198:-;7530:7;7556:32;7576:11;7556:19;:32::i;13270:402:183:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:183;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:183:o;2992:383:117:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:117;3325:45;2992:383;:::o;6537:347:198:-;6593:7;6612:25;6640:42;:40;:42::i;:::-;6612:70;;6692:24;6719:50;6747:17;6767:1;6719:19;:50::i;:::-;:54;;6772:1;6719:54;:::i;:::-;6692:81;;6783:61;6803:17;6822:1;6826:16;6783:19;:61::i;1094:186:200:-;1152:10;1177:100;1212:15;1240:9;1257:18;1177:25;:100::i;4730:249:167:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:167;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;11843:2:202;11839:15;;;;-1:-1:-1;;11835:88:202;11823:101;;11949:2;11940:12;;11694:264;4934:25:167;;;;-1:-1:-1;;4934:25:167;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:167;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;2594:287:178;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:178;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:178:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:178;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12301:14:202;12294:22;12289:3;12285:32;12273:45;;12343:1;12334:11;;12150:201;4085:25:178;;;;-1:-1:-1;;4085:25:178;;;;;;;;;1198:66;4034:26;:91::i;5941:246:167:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:167;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;6363:168:198;6445:79;6466:38;6483:20;6466:16;:38::i;:::-;6506:7;6515:8;6445:20;:79::i;3297:296:172:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:172;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:172;:64::i;5624:288:183:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:183;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:183;;;;5878:29;;;;;;;;:::i;5306:279:167:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:167;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2205:175:198:-;2255:30;2330:42;:40;:42::i;6512:295:167:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:167;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;7030:167:198:-;7092:4;7131:17;:15;:17::i;:::-;:59;;;;;2756:37;;;7131:59;;;4284:25:202;-1:-1:-1;;;;;7131:25:198;;;;;;;4257:18:202;;7131:59:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7115:75:198;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7115:75:198;;;7030:167;-1:-1:-1;;7030:167:198:o;6279:248:183:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:183;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;12688:3:202;12684:16;;;;12702:66;12680:89;12668:102;;12795:1;12786:11;;12543:260;6477:30:183;;;;-1:-1:-1;;6477:30:183;;;;;;;;;1439:66;6426:26;:96::i;3318:662:101:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13364:98:202;13337:18;;3713:52:101;13220:248:202;3668:97:101;1759:4:22;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:101;3900:8;3936;3883:4;:92::i;12697:243:183:-;12792:16;;;12806:1;12792:16;;;;;;;;;12763:26;;12792:16;;;;;;;;;;;-1:-1:-1;12792:16:183;12763:45;;12829:8;12814:9;12824:1;12814:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;12844:91;1310:66;1294:83;;12881:9;12892:1;12913:5;12895:25;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;7334:125:198;7409:7;:5;:7::i;:::-;-1:-1:-1;;;;;7409:12:198;;7422:21;7431:11;7422:8;:21::i;:::-;7409:43;;;;;;;;;;-1:-1:-1;;;;;6327:55:202;;;7409:43:198;;;6309:74:202;6399:18;;;6392:34;;;6282:18;;7409:43:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7334:125;;:::o;7183:249:167:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:167;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12301:14:202;12294:22;12289:3;12285:32;12273:45;;12343:1;12334:11;;12150:201;4071:290:167;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:167;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:167:o;4048:97:117:-;4089:7;4111:29;:27;:29::i;10773:294:183:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:183;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:45:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:45;-1:-1:-1;;;;;15578:30:45;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:45;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:45;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:183:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:183;;;;-1:-1:-1;17879:370:183;;;-1:-1:-1;;;;;17879:370:183:o;5147:257:184:-;5258:16;;;5199:22;5258:16;;;;;;;;;5281:13;5297:64;1269:66;5229:45;5345:1;1398:66;5297:26;:64::i;:::-;5375:23;;;5147:257;-1:-1:-1;;;5147:257:184:o;2640:388:169:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:169;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:169;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:169;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:169:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:169;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:169;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;4646:27:169;;;;-1:-1:-1;;4646:27:169;;;;;;;;;-1:-1:-1;;;4595:26:169;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:118:-;1133:10;1262:26;438:6;451:5:40;1262:26:118;:::i;:::-;-1:-1:-1;;1244:13:118;;:45;;451:5:40;1208:31:118;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:118;;;;;;:::o;10761:455:45:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:45;-1:-1:-1;;;;;10984:30:45;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:45;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:45;-1:-1:-1;;;;;17998:30:45;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:45;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:89:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:88:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:88;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:127:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:127;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:101:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:101;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:101;-1:-1:-1;2409:177:101;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:101;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:101;;;;;;;;;;;;:::i;6890:134:198:-;6930:17;6979:37;:35;:37::i;1836:227:45:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:45;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:45:o;32759:1315:44:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:44;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:23;;;33532:33:44;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:44;-1:-1:-1;33518:47:44;-1:-1:-1;894:4:39;884:15;;33573:21:44;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:44;33808:25;:14;33831:1;7070:16:23;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:44;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:183:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:22;35423:4;35409:27;35403:34;;35277:170;17276:26:183;35409:27:22;;;35403:34;35409:27;;;35403:34;17268:35:183;;-1:-1:-1;35403:34:22;-1:-1:-1;17382:33:183;;17374:42;;;;;;;;:::i;:::-;35409:27:22;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:183;;;;17366:50;;35403:34:22;;;;-1:-1:-1;35403:34:22;-1:-1:-1;35403:34:22;;-1:-1:-1;35403:34:22;-1:-1:-1;16961:760:183;-1:-1:-1;;16961:760:183:o;23107:355:44:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:24;:27;579:1:51;4322:44:24;4288:79;;;4275:93;36635:63:44;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:45:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:45;-1:-1:-1;;;;;11771:30:45;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:45;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:127:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:127;-1:-1:-1;;;;8363:236:127:o;1761:1386:115:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:115;-1:-1:-1;;;;;;2067:27:115;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:118;2955:46;;696:18:138;2954:74:118;2432:22:115;2515:26;2954:74:118;2515:13:115;:26::i;:::-;2490:51;-1:-1:-1;2549:50:115;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:40;2637:44:118;;2539:148;2681:23:115;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:115;-1:-1:-1;;;;;;;1761:1386:115:o;348:217:136:-;551:6;545:13;538:4;530:6;526:17;519:40;4058:247:184;4159:16;;;4105:17;4159:16;;;;;;;;;4182:13;4198:64;1269:66;4130:45;4246:1;1398:66;4198:26;:64::i;4598:171:24:-;4672:7;579:1:51;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:24;;;;;4598:171;-1:-1:-1;4598:171:24:o;48823:360:44:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:44;;;;;;;;;-1:-1:-1;48986:9:44;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:24:-;5451:7;579:1:51;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:24;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:24:o;53939:303:44:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:43;;4605:137;52742:274:44;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:43:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:51;804:25:52;;782:48;6806:135:43;;;-1:-1:-1;;;579:1:51;804:25:52;;782:48;6806:135:43;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:43;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:43;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:51;804:25:52;;782:48;8389:20:43;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:43;;;;:::o;51823:242:44:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:24;4323:19;:27;;;579:1:51;4322:44:24;4288:79;;;4275:93;52003:32:44;;:::i;:::-;;-1:-1:-1;51990:3:44;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:53;17798:4:44;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:25;;;;;17851:54:44;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:44;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:53;18455:4:44;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:25;;;;;18507:53:44;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:44;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:44;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:44:o;8945:812:43:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:43;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:44:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:44;24551:49;24403:106;24582:17;7070:16:23;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:44;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:127:-;35423:4:22;35409:27;;35403:34;35409:27;;;35403:34;8028:19:127;;8173:26;8147:53;;7963:242;;;:::o;5928:433:133:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:133;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:118:-;3550:13;3620:10;451:5:40;2637:44:118;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:118;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:118;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:102:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:126:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:126;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:126;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:126;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;5279:27:126;;;;-1:-1:-1;;5279:27:126;;;;;;;;;-1:-1:-1;;;5230:24:126;:91::i;5594:317:117:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:117;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:117;;;;-1:-1:-1;5594:317:117;-1:-1:-1;;;;;5594:317:117:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:117;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5042:669:43;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:43;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:44:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:44;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:44:o;3658:342:49:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:49;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:25:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:43:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::39;884:15;;758:151;1098:24:43;1055:5;:68::i;44254:4001:44:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12092:19:202;;12136:2;12127:12;;11963:182;44775:25:44;;;;-1:-1:-1;;44775:25:44;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:23;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:44;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:44;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;22538:12:202;22577:15;;;45340:92:44;;;22559:34:202;22629:15;;;22609:18;;;22602:43;22681:15;;22661:18;;;22654:43;22501:18;;45340:92:44;22332:371:202;45221:218:44;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;22881:25:202;;;22954:12;22942:25;;22922:18;;;22915:53;22854:18;;45581:74:44;22708:266:202;45522:140:44;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:53;46104:4:44;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:25;;;;-1:-1:-1;;;;;46158:55:44;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:44;;46014:486;;;-1:-1:-1;46558:32:44;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:23;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:44;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:43;;;-1:-1:-1;47216:248:44;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:53;47858:4:44;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:25;;;;-1:-1:-1;;;;;47911:54:44;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:44;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:133:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:118:-;3228:7;3292:26;438:6;451:5:40;3292:26:118;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:118:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:118;;3261:1:22;3257:13;;3253:24;2007:42:118;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;24819:79:202;;2092:30:118;;;24807:92:202;2092:30:118;;24915:12:202;;;;2092:30:118;;;875:21:22;;;2092:30:118;2142:39;760:164:22;955:327:102;1036:4;1178:56;696:18:138;578:36:118;2955:46;;2954:74;1227:6:102;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:117:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;37180:522:44:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:23;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:44;37440:12;:257::i;2003:574:42:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:42;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:42:o;40103:220:55:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;1489:2340:43:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:51;804:25:52;;782:48;2208:18:43;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:43;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:43;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:51;804:25:52;;782:48;3761:21:43;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:43;;;;:::o;7468:1525:23:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:202;;;4257:18;;7664:67:23;4138:177:202;7618:120:23;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:23;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:23;;;;;:::o;7448:223:133:-;35423:4:22;35409:27;;35403:34;35409:27;;;35403:34;7564:35:133;;;;;;7513:14;;7631:33;;7623:42;6862:97:178;4006:378:130;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:130;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:130;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:178;6862:97;2681:1129:57;2801:22;2831:21;2855;:11;2997:3:42;2975:25;;2901:104;2855:21:57;2831:45;-1:-1:-1;692:17:42;3238:38;;2882:20:57;3044:11;3238:38:42;3044:11:57;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:202:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:202;;14:180;-1:-1:-1;14:180:202:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:202;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:202;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1419:777;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:202;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:202;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:202;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:202:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:202;3037:15;-1:-1:-1;;3033:88:202;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:202:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:202;3925:18;;3912:32;;-1:-1:-1;3995:2:202;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4687:234::-;4832:2;4817:18;;4844:37;4874:6;4844:37;:::i;:::-;4890:25;;;4687:234;:::o;4926:405::-;5016:6;5024;5032;5085:2;5073:9;5064:7;5060:23;5056:32;5053:52;;;5101:1;5098;5091:12;5053:52;5137:9;5124:23;5114:33;;5194:2;5183:9;5179:18;5166:32;5156:42;;5248:2;5237:9;5233:18;5220:32;5281:1;5274:5;5271:12;5261:40;;5297:1;5294;5287:12;5261:40;5320:5;5310:15;;;4926:405;;;;;:::o;5336:390::-;5414:6;5422;5475:2;5463:9;5454:7;5450:23;5446:32;5443:52;;;5491:1;5488;5481:12;5443:52;5527:9;5514:23;5504:33;;5588:2;5577:9;5573:18;5560:32;5615:18;5607:6;5604:30;5601:50;;;5647:1;5644;5637:12;5601:50;5670;5712:7;5703:6;5692:9;5688:22;5670:50;:::i;:::-;5660:60;;;5336:390;;;;;:::o;6437:250::-;6522:1;6532:113;6546:6;6543:1;6540:13;6532:113;;;6622:11;;;6616:18;6603:11;;;6596:39;6568:2;6561:10;6532:113;;;-1:-1:-1;;6679:1:202;6661:16;;6654:27;6437:250::o;6692:329::-;6733:3;6771:5;6765:12;6798:6;6793:3;6786:19;6814:76;6883:6;6876:4;6871:3;6867:14;6860:4;6853:5;6849:16;6814:76;:::i;:::-;6935:2;6923:15;-1:-1:-1;;6919:88:202;6910:98;;;;7010:4;6906:109;;6692:329;-1:-1:-1;;6692:329:202:o;7026:320::-;7233:6;7222:9;7215:25;7276:2;7271;7260:9;7256:18;7249:30;7196:4;7296:44;7336:2;7325:9;7321:18;7313:6;7296:44;:::i;7351:442::-;7404:5;7457:3;7450:4;7442:6;7438:17;7434:27;7424:55;;7475:1;7472;7465:12;7424:55;7504:6;7498:13;7535:49;7551:32;7580:2;7551:32;:::i;7535:49::-;7609:2;7600:7;7593:19;7655:3;7648:4;7643:2;7635:6;7631:15;7627:26;7624:35;7621:55;;;7672:1;7669;7662:12;7621:55;7685:77;7759:2;7752:4;7743:7;7739:18;7732:4;7724:6;7720:17;7685:77;:::i;7798:335::-;7877:6;7930:2;7918:9;7909:7;7905:23;7901:32;7898:52;;;7946:1;7943;7936:12;7898:52;7979:9;7973:16;8012:18;8004:6;8001:30;7998:50;;;8044:1;8041;8034:12;7998:50;8067:60;8119:7;8110:6;8099:9;8095:22;8067:60;:::i;8486:184::-;-1:-1:-1;;;8535:1:202;8528:88;8635:4;8632:1;8625:15;8659:4;8656:1;8649:15;8675:125;8740:9;;;8761:10;;;8758:36;;;8774:18;;:::i;8805:195::-;8844:3;-1:-1:-1;;8868:5:202;8865:77;8862:103;;8945:18;;:::i;:::-;-1:-1:-1;8992:1:202;8981:13;;8805:195::o;9005:251::-;9075:6;9128:2;9116:9;9107:7;9103:23;9099:32;9096:52;;;9144:1;9141;9134:12;9096:52;9176:9;9170:16;9195:31;9220:5;9195:31;:::i;10021:423::-;10242:6;10231:9;10224:25;10258:37;10288:6;10258:37;:::i;:::-;10331:6;10326:2;10315:9;10311:18;10304:34;10374:2;10369;10358:9;10354:18;10347:30;10205:4;10394:44;10434:2;10423:9;10419:18;10411:6;10394:44;:::i;11505:184::-;-1:-1:-1;;;11554:1:202;11547:88;11654:4;11651:1;11644:15;11678:4;11675:1;11668:15;12808:407;12891:5;12931;12925:12;12973:4;12966:5;12962:16;12956:23;12998:66;13090:2;13086;13082:11;13073:20;;13116:1;13108:6;13105:13;13102:107;;;13196:2;13190;13180:6;13177:1;13173:14;13170:1;13166:22;13162:31;13158:2;13154:40;13150:49;13141:58;;13102:107;;;;12808:407;;;:::o;13473:439::-;13526:3;13564:5;13558:12;13591:6;13586:3;13579:19;13617:4;13646;13641:3;13637:14;13630:21;;13685:4;13678:5;13674:16;13708:1;13718:169;13732:6;13729:1;13726:13;13718:169;;;13793:13;;13781:26;;13827:12;;;;13862:15;;;;13754:1;13747:9;13718:169;;;-1:-1:-1;13903:3:202;;13473:439;-1:-1:-1;;;;;13473:439:202:o;13917:468::-;14217:6;14206:9;14199:25;14260:2;14255;14244:9;14240:18;14233:30;14180:4;14280:56;14332:2;14321:9;14317:18;14309:6;14280:56;:::i;:::-;14272:64;;14372:6;14367:2;14356:9;14352:18;14345:34;13917:468;;;;;;:::o;14390:655::-;14532:6;14540;14548;14601:2;14589:9;14580:7;14576:23;14572:32;14569:52;;;14617:1;14614;14607:12;14569:52;14650:9;14644:16;14679:18;14720:2;14712:6;14709:14;14706:34;;;14736:1;14733;14726:12;14706:34;14759:60;14811:7;14802:6;14791:9;14787:22;14759:60;:::i;:::-;14749:70;;14859:2;14848:9;14844:18;14838:25;14828:35;;14909:2;14898:9;14894:18;14888:25;14872:41;;14938:2;14928:8;14925:16;14922:36;;;14954:1;14951;14944:12;14922:36;;14977:62;15031:7;15020:8;15009:9;15005:24;14977:62;:::i;15050:709::-;15420:6;15409:9;15402:25;15463:3;15458:2;15447:9;15443:18;15436:31;15383:4;15490:57;15542:3;15531:9;15527:19;15519:6;15490:57;:::i;:::-;15595:4;15587:6;15583:17;15578:2;15567:9;15563:18;15556:45;15649:9;15641:6;15637:22;15632:2;15621:9;15617:18;15610:50;15677:32;15702:6;15694;15677:32;:::i;:::-;15669:40;;;15746:6;15740:3;15729:9;15725:19;15718:35;15050:709;;;;;;;;:::o;15764:548::-;16088:6;16077:9;16070:25;16131:3;16126:2;16115:9;16111:18;16104:31;16051:4;16152:57;16204:3;16193:9;16189:19;16181:6;16152:57;:::i;:::-;16257:4;16245:17;;;;16240:2;16225:18;;16218:45;-1:-1:-1;16294:2:202;16279:18;16272:34;16144:65;15764:548;-1:-1:-1;;15764:548:202:o;16317:184::-;16387:6;16440:2;16428:9;16419:7;16415:23;16411:32;16408:52;;;16456:1;16453;16446:12;16408:52;-1:-1:-1;16479:16:202;;16317:184;-1:-1:-1;16317:184:202:o;16506:175::-;16543:3;16587:4;16580:5;16576:16;16616:4;16607:7;16604:17;16601:43;;16624:18;;:::i;:::-;16673:1;16660:15;;16506:175;-1:-1:-1;;16506:175:202:o;16686:604::-;16995:6;16984:9;16977:25;17038:3;17033:2;17022:9;17018:18;17011:31;16958:4;17065:57;17117:3;17106:9;17102:19;17094:6;17065:57;:::i;:::-;17170:4;17162:6;17158:17;17153:2;17142:9;17138:18;17131:45;17224:9;17216:6;17212:22;17207:2;17196:9;17192:18;17185:50;17252:32;17277:6;17269;17252:32;:::i;:::-;17244:40;16686:604;-1:-1:-1;;;;;;;16686:604:202:o;17622:128::-;17689:9;;;17710:11;;;17707:37;;;17724:18;;:::i;17755:168::-;17828:9;;;17859;;17876:15;;;17870:22;;17856:37;17846:71;;17897:18;;:::i;17928:640::-;18179:6;18174:3;18167:19;18149:3;18205:2;18238;18233:3;18229:12;18270:6;18264:13;18335:2;18327:6;18323:15;18356:1;18366:175;18380:6;18377:1;18374:13;18366:175;;;18443:13;;18429:28;;18479:14;;;;18516:15;;;;18402:1;18395:9;18366:175;;;-1:-1:-1;18557:5:202;;17928:640;-1:-1:-1;;;;;;;17928:640:202:o;18573:184::-;-1:-1:-1;;;18622:1:202;18615:88;18722:4;18719:1;18712:15;18746:4;18743:1;18736:15;18762:511;19013:2;19002:9;18995:21;18976:4;19039:56;19091:2;19080:9;19076:18;19068:6;19039:56;:::i;:::-;19143:14;19135:6;19131:27;19126:2;19115:9;19111:18;19104:55;19207:9;19199:6;19195:22;19190:2;19179:9;19175:18;19168:50;19235:32;19260:6;19252;19235:32;:::i;19278:616::-;19589:6;19578:9;19571:25;19632:3;19627:2;19616:9;19612:18;19605:31;19552:4;19659:57;19711:3;19700:9;19696:19;19688:6;19659:57;:::i;:::-;19764:14;19756:6;19752:27;19747:2;19736:9;19732:18;19725:55;19828:9;19820:6;19816:22;19811:2;19800:9;19796:18;19789:50;19856:32;19881:6;19873;19856:32;:::i;19899:925::-;20348:66;20340:6;20336:79;20331:3;20324:92;20306:3;20435;20467:2;20463:1;20458:3;20454:11;20447:23;20499:6;20493:13;20515:74;20582:6;20578:1;20573:3;20569:11;20562:4;20554:6;20550:17;20515:74;:::i;:::-;20617:6;20612:3;20608:16;20598:26;;20652:2;20648:1;20644:2;20640:10;20633:22;20686:6;20680:13;20664:29;;20702:75;20768:8;20764:1;20760:2;20756:10;20749:4;20741:6;20737:17;20702:75;:::i;:::-;20797:17;20816:1;20793:25;;19899:925;-1:-1:-1;;;;;19899:925:202:o;20829:339::-;21006:2;20995:9;20988:21;20969:4;21026:44;21066:2;21055:9;21051:18;21043:6;21026:44;:::i;:::-;21018:52;;-1:-1:-1;;;;;21110:6:202;21106:55;21101:2;21090:9;21086:18;21079:83;20829:339;;;;;:::o;21173:287::-;21302:3;21340:6;21334:13;21356:66;21415:6;21410:3;21403:4;21395:6;21391:17;21356:66;:::i;:::-;21438:16;;;;;21173:287;-1:-1:-1;;21173:287:202:o;21684:464::-;21931:66;21923:6;21919:79;21908:9;21901:98;22035:6;22030:2;22019:9;22015:18;22008:34;22078:2;22073;22062:9;22058:18;22051:30;21882:4;22098:44;22138:2;22127:9;22123:18;22115:6;22098:44;:::i;22153:174::-;22220:12;22252:10;;;22264;;;22248:27;;22287:11;;;22284:37;;;22301:18;;:::i;:::-;22284:37;22153:174;;;;:::o;22979:901::-;23404:6;23393:9;23386:25;23447:3;23442:2;23431:9;23427:18;23420:31;23367:4;23474:57;23526:3;23515:9;23511:19;23503:6;23474:57;:::i;:::-;23579:4;23567:17;;23562:2;23547:18;;23540:45;23604:12;23652:15;;;23647:2;23632:18;;23625:43;23705:15;;23699:3;23684:19;;23677:44;23752:3;23737:19;;23730:35;;;23802:22;;;23796:3;23781:19;;23774:51;23842:32;23806:6;23859;23842:32;:::i;:::-;23834:40;22979:901;-1:-1:-1;;;;;;;;;;22979:901:202:o;23885:788::-;24250:3;24239:9;24232:22;24213:4;24277:57;24329:3;24318:9;24314:19;24306:6;24277:57;:::i;:::-;24382:4;24374:6;24370:17;24365:2;24354:9;24350:18;24343:45;24436:14;24428:6;24424:27;24419:2;24408:9;24404:18;24397:55;24500:12;24492:6;24488:25;24483:2;24472:9;24468:18;24461:53;24551:6;24545:3;24534:9;24530:19;24523:35;24607:9;24599:6;24595:22;24589:3;24578:9;24574:19;24567:51;24635:32;24660:6;24652;24635:32;:::i;:::-;24627:40;23885:788;-1:-1:-1;;;;;;;;;23885:788:202:o;24938:530::-;25123:3;25161:6;25155:13;25177:66;25236:6;25231:3;25224:4;25216:6;25212:17;25177:66;:::i;:::-;25312:2;25308:15;;;;-1:-1:-1;;25304:88:202;25265:16;;;;25290:103;;;25420:2;25409:14;;25402:30;;;;25459:2;25448:14;;24938:530;-1:-1:-1;;24938:530:202:o;25473:359::-;25676:2;25665:9;25658:21;25639:4;25696:44;25736:2;25725:9;25721:18;25713:6;25696:44;:::i;:::-;25771:2;25756:18;;25749:34;;;;-1:-1:-1;25814:2:202;25799:18;25792:34;25688:52;25473:359;-1:-1:-1;25473:359:202:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentAvailableLevel(uint256)":"1ecb393f","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c\",\"dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0\",\"dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0xfc85a0b615631dc5cfa9fefb0ef067e158019cf8d7836a8eafc1b4a0a3888907\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d55df21afe9e4517492081158714ea00bb33cf5ee06b0861ddda1d5cf06b7f56\",\"dweb:/ipfs/QmWoZThPDga5cs28BSkHGw173WwQRMVC14kEHZQcSb5t2z\"]},\"src/utils.sol\":{\"keccak256\":\"0xf346e5e55e21a06c5337887dbecefccdd3e3f001c7b461875bb69242e1bda1c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9dae95bc79f3143fdaef0c92d0ffca7521609c12319aee4fb2f994ba548e279c\",\"dweb:/ipfs/QmbbhHcQcnGWVmfnbg9vLdAnjCA38BAJq3omoLEF4o5kbx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059","urls":["bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c","dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf","urls":["bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0","dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0xfc85a0b615631dc5cfa9fefb0ef067e158019cf8d7836a8eafc1b4a0a3888907","urls":["bzz-raw://d55df21afe9e4517492081158714ea00bb33cf5ee06b0861ddda1d5cf06b7f56","dweb:/ipfs/QmWoZThPDga5cs28BSkHGw173WwQRMVC14kEHZQcSb5t2z"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf346e5e55e21a06c5337887dbecefccdd3e3f001c7b461875bb69242e1bda1c5","urls":["bzz-raw://9dae95bc79f3143fdaef0c92d0ffca7521609c12319aee4fb2f994ba548e279c","dweb:/ipfs/QmbbhHcQcnGWVmfnbg9vLdAnjCA38BAJq3omoLEF4o5kbx"],"license":"MIT"}},"version":1},"id":198} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061484c806100206000396000f3fe6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc57806323801570116100e1578063238015701461022b57806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd5780631ecb393f1461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e610148366004613d64565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b610186366004613d7d565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b6366004613d64565b61043f565b6040516101629190613df6565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613f31565b61045f565b604051908152602001610162565b34801561021757600080fd5b506101fd610226366004613d64565b6106c1565b34801561023757600080fd5b5061024b610246366004613d64565b61073f565b6040516101629190613f8a565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b366004613d64565b61074a565b34801561029c57600080fd5b5061018b6102ab366004613d64565b610755565b6102c36102be366004613f9d565b610881565b005b3480156102d157600080fd5b506101fd6102e0366004613d64565b6109f9565b3480156102f157600080fd5b506102c3610300366004613fda565b610a8e565b34801561031157600080fd5b506102c3610320366004613d64565b610aff565b34801561033157600080fd5b5061014e610340366004613d64565b610ccf565b34801561035157600080fd5b5061014e610cda565b34801561036657600080fd5b506101fd610375366004613d64565b610ce4565b34801561038657600080fd5b506101fd610395366004613d64565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610447613d0e565b61043982610cef565b600061045a610da1565b905090565b60008061046a610dd3565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610cda565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610e06565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401614071565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261062491908101906140cf565b5061062e816109f9565b915061063a8286610e53565b6106448282610f22565b61064d84610fa1565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001611046565b6106af82856110ff565b6106b9818461117e565b509392505050565b60006106cd60136111b1565b82106106db57506014919050565b60005b601481101561073957826106f1826111b1565b1115801561071057508261070e61070983600161411a565b6111b1565b115b156107275761072081600161411a565b9150610739565b806107318161412d565b9150506106de565b50919050565b60006104398261122d565b6000610439826112d7565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d611369565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190614147565b60015b15610862576107f0611369565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190614147565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a82611373565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611405565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e83836114c1565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401614164565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526115aa565b5050505050565b600080610a04611369565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190614147565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611405565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff83168261117e565b5050565b610b0881611405565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d81611373565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b6000610bb582610cef565b600160e0820152608081015160a08201529050610bd28282611658565b610bda610cda565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b50505050610c65610cda565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610c9291815260200190565b600060405180830381600087803b158015610cac57600080fd5b505af1158015610cc0573d6000803e3d6000fd5b50505050610afb826001611709565b60006104398261178d565b600061045a61182a565b600061043982611834565b610cf7613d0e565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610d2d57610d2d61418c565b602090810291909101015260008080610d867f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006118c6565b925092509250610d97838383611996565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610dd05750335b90565b600080610dde611a0e565b90506000610ded826000611a76565b610df890600161411a565b905061043982600083611b27565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611bf7565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e8957610e8961418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610ee8919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611c6f565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f5857610f5861418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610ee891815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610fda57610fda61418c565b602090810291909101015260006110327f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611d24565b905061103e8160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061107c5761107c61418c565b602002602001018181525050610f1d7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016110ca91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611c6f565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106111355761113561418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610ee891815260200190565b610afb6111aa7f4368617261637465727300000000000000000000000000000000000000000000611de1565b8383611e2e565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106111ed576111ed61418c565b6020908102919091010152600061103e7f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611d24565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106112665761126661418c565b602090810291909101015260006112bf7f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611d24565b905060f881901c600281111561103e5761103e613dbf565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106113105761131061418c565b6020908102919091010152600061103e7f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611d24565b600061045a611a0e565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106113ac576113ac61418c565b602090810291909101015260006110327f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611d24565b600061140f611369565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561147c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a09190614147565b6001600160a01b03166114b1610450565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106114f7576114f761418c565b6020908102919091010152610f1d7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561153a5761153a613dbf565b604051602001611575919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611c6f565b60606000806115c06115bb856141a2565b611e80565b91509150816000801b03611626576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168217905261103e8285611f50565b600061168a826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161202b565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106116c9576116c961418c565b60209081029190910101526117017f746255440000000000000000000000005374617473000000000000000000000082868686612069565b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061173f5761173f61418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610ee891151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106117c6576117c661418c565b6020908102919091010152600061181f7f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611d24565b60601c949350505050565b600061045a6120df565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061186d5761186d61418c565b6020908102919091010152600061103e7f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611d24565b60606000606060006118d66120df565b9050306001600160a01b038216036118ff576118f387878761211e565b9350935093505061198d565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611948908a908a908a9060040161422e565b600060405180830381865afa158015611965573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118f39190810190614257565b93509350939050565b61199e613d0e565b6119a784612226565b60e0890181905260c0890182905260a0890183905260808901849052606089018590528860208101604082018860028111156119e5576119e5613dbf565b60028111156119f6576119f6613dbf565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611a6c7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611d24565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611abb57611abb61418c565b6020026020010181815250508260001b81600181518110611ade57611ade61418c565b60209081029190910101526000611b1e7f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611d24565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611b6857611b6861418c565b6020026020010181815250508260001b81600181518110611b8b57611b8b61418c565b602002602001018181525050611bf17f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611bd491815260200190565b60408051601f19818403018152919052630100080160dd1b611c6f565b50505050565b6000611c056070601061411a565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611c796120df565b9050306001600160a01b03821603611c9d57611c988686868686612294565b611701565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611cea90899089908990899089906004016142ba565b600060405180830381600087803b158015611d0457600080fd5b505af1158015611d18573d6000803e3d6000fd5b50505050505050505050565b600080611d2f6120df565b9050306001600160a01b03821603611d5557611d4d868686866122a9565b91505061103e565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611da0908990899089908990600401614301565b602060405180830381865afa158015611dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4d9190614330565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611bf7565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611e6757611e6761418c565b602002602001018181525050611bf184826000856122d6565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611ed957611ed961418c565b602090810291909101015260008080611f327f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006118c6565b925092509250611f43838383612387565b9550955050505050915091565b60606000611f5c61182a565b90506001600160a01b0381163003611f9d576000611f84611f7b610da1565b6000878761239f565b9350905080611f9657611f96836124da565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611fe49087908790600401614071565b6000604051808303816000875af1158015612003573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261103e91908101906140cf565b6060888888888888888860405160200161204c989796959493929190614349565b604051602081830303815290604052905098975050505050505050565b60006120736120df565b9050306001600160a01b0382160361209257611c9886868686866124e2565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611cea908990899089908990899060040161438e565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680612119573391505090565b919050565b606060006060600061212f856124f8565b905061213c87878361251b565b9350600061214986612554565b9050801561221b5761215b8888612591565b935066ffffffffffffff841667ffffffffffffffff81111561217f5761217f613e6c565b6040519080825280601f01601f1916602001820160405280156121a9576020820181803683370190505b5092506020830160005b828160ff1610156122185760006121cb8b8b846125a4565b905060006121e8888460ff166028026038011c64ffffffffff1690565b90506121f78260008387612624565b612201818561411a565b935050508080612210906143df565b9150506121b3565b50505b505093509350939050565b600080600080600080600080612240896000016020015190565b60408a015160608b0151919950975060f81c600281111561226357612263613dbf565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f285856122a384876126f0565b85612721565b6000611b1e6122b886866129c5565b60ff858116601b0360080285901c166122d185876126f0565b612a1b565b60006122e06120df565b9050306001600160a01b03821603612303576122fe85858585612a6c565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061234e9088908890889088906004016143fe565b600060405180830381600087803b15801561236857600080fd5b505af115801561237c573d6000803e3d6000fd5b505050505050505050565b60008061239385612aa7565b90969095509350505050565b600060606000806123af86612abc565b90925090506001600160a01b03821661240057856123cc87612b60565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190614071565b8061240f5761240f8689612c8e565b861561247b577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061246382612cda565b9050612478826124738b8461411a565b612d53565b50505b60006124878760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146124bf576124ba88888488612def565b6124cb565b6124cb88888488612e67565b90999098509650505050505050565b805160208201fd5b6109f285858585856124f38b612ec8565b612f4d565b600060086125086002602061443d565b6125129190614450565b9190911c919050565b60608160000361253a5750604080516020810190915260008152611c68565b600061254685856129c5565b9050611b1e81600085613286565b600060086001806125676002602061443d565b612571919061443d565b61257b919061443d565b6125859190614450565b8260ff911c1692915050565b6000611c686125a084846132a9565b5490565b600083836040516020016125b9929190614467565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156126ab576020831061264e5760208304840193506020838161264a5761264a6144a3565b0692505b82156126ab5760208390036000818410156126715750600019600884021c61267b565b50600019600882021c5b8554600886021b81845116821982161784525081841161269c575050611bf1565b50600194909401939182900391015b5b602082106126cd5783548152600190930192601f19909101906020016126ac565b8115611bf1576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761271760ff601b83900360080287901c168361411a565b91506001016126f5565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036127ab57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161279e939291906144b9565b60405180910390a2611bf1565b60006127b785856129c5565b905060006127c4866132ff565b905060005b81518110156128995760008282815181106127e6576127e661418c565b602002602001015190506128126004826affffffffffffffffffffff191661338890919063ffffffff16565b15612890576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061285d908b908b908b908b906004016144ec565b600060405180830381600087803b15801561287757600080fd5b505af115801561288b573d6000803e3d6000fd5b505050505b506001016127c9565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516128ce939291906144b9565b60405180910390a26128e9828565ffffffffffff16856133a6565b60005b81518110156129bc5760008282815181106129095761290961418c565b602002602001015190506129356008826affffffffffffffffffffff191661338890919063ffffffff16565b156129b3576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612980908b908b908b908b906004016144ec565b600060405180830381600087803b15801561299a57600080fd5b505af11580156129ae573d6000803e3d6000fd5b505050505b506001016128ec565b50505050505050565b600082826040516020016129da929190614467565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612a4157602082048401935060208281612a3d57612a3d6144a3565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b6000612a788585612591565b90506000612a95828560ff166028026038011c64ffffffffff1690565b905061170186868660008588886133bc565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612af657612af661418c565b602090810291909101015260008080612b4f7f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061211e565b925092509250611f438383836137f6565b606081601081901b6000612b7383613802565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612bce57612bc97fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613819565b612c05565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612c2c57612c2783613819565b612c63565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612c7593929190614525565b6040516020818303038152906040529350505050919050565b612c98828261389f565b610afb57612ca582612b60565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e99291906145b3565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612d1357612d1361418c565b6020908102919091010152600061103e7f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6122a9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612d8957612d8961418c565b602002602001018181525050610f1d7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612dd291815260200190565b60408051601f19818403018152919052630100080160dd1b612294565b60006060836001600160a01b03166000612e0a8589896138fd565b604051612e1791906145de565b60006040518083038185875af1925050503d8060008114612e54576040519150601f19603f3d011682016040523d82523d6000602084013e612e59565b606091505b509097909650945050505050565b60006060836001600160a01b0316612e808488886138fd565b604051612e8d91906145de565b600060405180830381855af49150503d8060008114612e54576040519150601f19603f3d011682016040523d82523d6000602084013e612e59565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d000000000000000000008201612f1757507e60030220202000000000000000000000000000000000000000000000000000919050565b610439612f447f746273746f72650000000000000000005461626c6573000000000000000000008461392c565b60206000612a1b565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001603612fd957857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051612fcc94939291906145fa565b60405180910390a2611701565b6000612fe4876132ff565b905060005b81518110156130bd5760008282815181106130065761300661418c565b602002602001015190506130326001826affffffffffffffffffffff191661338890919063ffffffff16565b156130b4576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613081908c908c908c908c908c908c90600401614639565b600060405180830381600087803b15801561309b57600080fd5b505af11580156130af573d6000803e3d6000fd5b505050505b50600101612fe9565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516130f494939291906145fa565b60405180910390a2600061310888886129c5565b90506000602087019050613120826000895184613948565b600061312b85612554565b11156131af57600061313d8a8a6132a9565b878155905060208601915060008060005b61315788612554565b8160ff1610156131aa5761316c8d8d836125a4565b92506131878a8260ff166028026038011c64ffffffffff1690565b91506131968360008488613948565b6131a0828661411a565b945060010161314e565b505050505b60005b8351811015611d185760008482815181106131cf576131cf61418c565b602002602001015190506131fb6002826affffffffffffffffffffff191661338890919063ffffffff16565b1561327d576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061324a908e908e908e908e908e908e90600401614639565b600060405180830381600087803b15801561326457600080fd5b505af1158015613278573d6000803e3d6000fd5b505050505b506001016131b2565b60405160208101601f19603f84840101166040528282526106b985858584612624565b600082826040516020016132be929190614467565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106133395761333961418c565b602090810291909101015260006133717f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613a07565b905061103e6133838260008451613a41565b613acf565b60008160ff16826133998560581c90565b1660ff1614905092915050565b610f1d838383516133b78560200190565b613948565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461347c577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161343a91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e9939291600401614692565b6000613497828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836134b0919061443d565b6134ba919061411a565b90508082141580156134dc5750816134d286886146d3565b64ffffffffff1614155b1561352c576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff16111561357d576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b600061358a848984613ae0565b905060006135978b6132ff565b905060005b81518110156136625760008282815181106135b9576135b961418c565b602002602001015190506135e56010826affffffffffffffffffffff191661338890919063ffffffff16565b1561365957606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161362697969594939291906146f8565b600060405180830381600087803b15801561364057600080fd5b505af1158015613654573d6000803e3d6000fd5b505050505b5060010161359c565b5064ffffffffff881660005b8a60ff168160ff1610156136a157613695878260ff166028026038011c64ffffffffff1690565b9091019060010161366e565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516136dc96959493929190614756565b60405180910390a2508284146136fd5760006136f88c8c6132a9565b839055505b600061370a8c8c8c6125a4565b905061371e818a64ffffffffff16896133a6565b5060005b81518110156137e857600082828151811061373f5761373f61418c565b6020026020010151905061376b6020826affffffffffffffffffffff191661338890919063ffffffff16565b156137df57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016137ac97969594939291906146f8565b600060405180830381600087803b1580156137c657600080fd5b505af11580156137da573d6000803e3d6000fd5b505050505b50600101613722565b505050505050505050505050565b60008061239385613bae565b60006138106070601061411a565b9190911b919050565b606060005b601081101561386f576fffffffffffffffffffffffffffffffff198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561386f5760010161381e565b604080516fffffffffffffffffffffffffffffffff1985166020820152815160309091019091528181528061103e565b60006138ed7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613bca565b80611c685750611c688383613bca565b6060838383604051602001613914939291906147b2565b60405160208183030381529060405290509392505050565b60408051602081018490529081018290526000906060016129da565b82156139c257602083106139725760208304840193506020838161396e5761396e6144a3565b0692505b82156139c25760208390036000600019600885021c1990506008850281811c91508351811c90508119875416828216178755508184116139b3575050611bf1565b50600194909401939182900391015b5b602082106139e45780518455600190930192601f19909101906020016139c3565b8115611bf1576000600019600884021c8554835182191691161785555050505050565b606061103e613a178585856125a4565b6000613a3c85613a278989612591565b9060ff166028026038011c64ffffffffff1690565b613286565b600081831180613a515750835182115b15613a8e578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e9939291906147f1565b60208401613a9c848261411a565b90506000613aaa858561443d565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611c688360156000613c93565b600064ffffffffff821115613b24576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613b565780850382019150613b5e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612ab5565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613c0357613c0361418c565b602002602001018181525050826001600160a01b031660001b81600181518110613c2f57613c2f61418c565b60209081029190910101526000613c877f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006122a9565b9050611b1e8160f81c90565b60606000613ca18560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613cc757613cc76144a3565b04905060405193506020840160208202810160405281855260005b82811015613d02578451871c825293870193602090910190600101613ce2565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613d3b57613d3b613dbf565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613d7657600080fd5b5035919050565b600060208284031215613d8f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c6857600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613df357634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613e1881613dd5565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613df357600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613eab57613eab613e6c565b604052919050565b600067ffffffffffffffff821115613ecd57613ecd613e6c565b50601f01601f191660200190565b600082601f830112613eec57600080fd5b8135613eff613efa82613eb3565b613e82565b818152846020838601011115613f1457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613f4657600080fd5b8335613f5181613e57565b925060208401359150604084013567ffffffffffffffff811115613f7457600080fd5b613f8086828701613edb565b9150509250925092565b60208101613f9783613dd5565b91905290565b600080600060608486031215613fb257600080fd5b8335925060208401359150604084013560038110613fcf57600080fd5b809150509250925092565b60008060408385031215613fed57600080fd5b82359150602083013567ffffffffffffffff81111561400b57600080fd5b61401785828601613edb565b9150509250929050565b60005b8381101561403c578181015183820152602001614024565b50506000910152565b6000815180845261405d816020860160208601614021565b601f01601f19169290920160200192915050565b82815260406020820152600061103e6040830184614045565b600082601f83011261409b57600080fd5b81516140a9613efa82613eb3565b8181528460208386010111156140be57600080fd5b61103e826020830160208701614021565b6000602082840312156140e157600080fd5b815167ffffffffffffffff8111156140f857600080fd5b61103e8482850161408a565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439614104565b6000600019820361414057614140614104565b5060010190565b60006020828403121561415957600080fd5b8151611c6881613e57565b83815261417083613dd5565b826020820152606060408201526000611b1e6060830184614045565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156141ea5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561422357815187529582019590820190600101614207565b509495945050505050565b83815260606020820152600061424760608301856141f2565b9050826040830152949350505050565b60008060006060848603121561426c57600080fd5b835167ffffffffffffffff8082111561428457600080fd5b6142908783880161408a565b94506020860151935060408601519150808211156142ad57600080fd5b50613f808682870161408a565b85815260a0602082015260006142d360a08301876141f2565b60ff8616604084015282810360608401526142ee8186614045565b9150508260808301529695505050505050565b84815260806020820152600061431a60808301866141f2565b60ff949094166040830152506060015292915050565b60006020828403121561434257600080fd5b5051919050565b88815287602082015261435b87613dd5565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006143a760a08301876141f2565b82810360408401526143b98187614045565b905084606084015282810360808401526143d38185614045565b98975050505050505050565b600060ff821660ff81036143f5576143f5614104565b60010192915050565b84815260806020820152600061441760808301866141f2565b60ff8516604084015282810360608401526144328185614045565b979650505050505050565b8181038181111561043957610439614104565b808202811582820484141761043957610439614104565b8281526000602080830184516020860160005b828110156144965781518452928401929084019060010161447a565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006144cc60608301866141f2565b65ffffffffffff851660208401528281036040840152610d978185614045565b84815260806020820152600061450560808301866141f2565b65ffffffffffff8516604084015282810360608401526144328185614045565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451614586816003860160208901614021565b8084019050816003820152845191506145a6826004830160208801614021565b0160040195945050505050565b6040815260006145c66040830185614045565b90506001600160a01b03831660208301529392505050565b600082516145f0818460208701614021565b9190910192915050565b60808152600061460d60808301876141f2565b828103602084015261461f8187614045565b905084604084015282810360608401526144328185614045565b86815260c06020820152600061465260c08301886141f2565b82810360408401526146648188614045565b9050856060840152828103608084015261467e8186614045565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611b1e6060830184614045565b64ffffffffff8181168382160190808211156146f1576146f1614104565b5092915050565b87815260e06020820152600061471160e08301896141f2565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526147488185614045565b9a9950505050505050505050565b60c08152600061476960c08301896141f2565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526147a58185614045565b9998505050505050505050565b600084516147c4818460208901614021565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006148046060830186614045565b6020830194909452506040015291905056fea264697066735822122086d244e76566d88f08574505a94c682c41e0427c140ef488ae6e6840ef8c383e64736f6c63430008180033","sourceMap":"1812:6136:211:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc57806323801570116100e1578063238015701461022b57806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd5780631ecb393f1461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e610148366004613d64565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b610186366004613d7d565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b6366004613d64565b61043f565b6040516101629190613df6565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613f31565b61045f565b604051908152602001610162565b34801561021757600080fd5b506101fd610226366004613d64565b6106c1565b34801561023757600080fd5b5061024b610246366004613d64565b61073f565b6040516101629190613f8a565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b366004613d64565b61074a565b34801561029c57600080fd5b5061018b6102ab366004613d64565b610755565b6102c36102be366004613f9d565b610881565b005b3480156102d157600080fd5b506101fd6102e0366004613d64565b6109f9565b3480156102f157600080fd5b506102c3610300366004613fda565b610a8e565b34801561031157600080fd5b506102c3610320366004613d64565b610aff565b34801561033157600080fd5b5061014e610340366004613d64565b610ccf565b34801561035157600080fd5b5061014e610cda565b34801561036657600080fd5b506101fd610375366004613d64565b610ce4565b34801561038657600080fd5b506101fd610395366004613d64565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610447613d0e565b61043982610cef565b600061045a610da1565b905090565b60008061046a610dd3565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610cda565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610e06565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401614071565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261062491908101906140cf565b5061062e816109f9565b915061063a8286610e53565b6106448282610f22565b61064d84610fa1565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001611046565b6106af82856110ff565b6106b9818461117e565b509392505050565b60006106cd60136111b1565b82106106db57506014919050565b60005b601481101561073957826106f1826111b1565b1115801561071057508261070e61070983600161411a565b6111b1565b115b156107275761072081600161411a565b9150610739565b806107318161412d565b9150506106de565b50919050565b60006104398261122d565b6000610439826112d7565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d611369565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190614147565b60015b15610862576107f0611369565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190614147565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a82611373565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611405565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e83836114c1565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401614164565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526115aa565b5050505050565b600080610a04611369565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190614147565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611405565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff83168261117e565b5050565b610b0881611405565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d81611373565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b6000610bb582610cef565b600160e0820152608081015160a08201529050610bd28282611658565b610bda610cda565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b50505050610c65610cda565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610c9291815260200190565b600060405180830381600087803b158015610cac57600080fd5b505af1158015610cc0573d6000803e3d6000fd5b50505050610afb826001611709565b60006104398261178d565b600061045a61182a565b600061043982611834565b610cf7613d0e565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610d2d57610d2d61418c565b602090810291909101015260008080610d867f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006118c6565b925092509250610d97838383611996565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610dd05750335b90565b600080610dde611a0e565b90506000610ded826000611a76565b610df890600161411a565b905061043982600083611b27565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611bf7565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e8957610e8961418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610ee8919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611c6f565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f5857610f5861418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610ee891815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610fda57610fda61418c565b602090810291909101015260006110327f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611d24565b905061103e8160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061107c5761107c61418c565b602002602001018181525050610f1d7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016110ca91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611c6f565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106111355761113561418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610ee891815260200190565b610afb6111aa7f4368617261637465727300000000000000000000000000000000000000000000611de1565b8383611e2e565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106111ed576111ed61418c565b6020908102919091010152600061103e7f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611d24565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106112665761126661418c565b602090810291909101015260006112bf7f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611d24565b905060f881901c600281111561103e5761103e613dbf565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106113105761131061418c565b6020908102919091010152600061103e7f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611d24565b600061045a611a0e565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106113ac576113ac61418c565b602090810291909101015260006110327f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611d24565b600061140f611369565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561147c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a09190614147565b6001600160a01b03166114b1610450565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106114f7576114f761418c565b6020908102919091010152610f1d7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561153a5761153a613dbf565b604051602001611575919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611c6f565b60606000806115c06115bb856141a2565b611e80565b91509150816000801b03611626576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168217905261103e8285611f50565b600061168a826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161202b565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106116c9576116c961418c565b60209081029190910101526117017f746255440000000000000000000000005374617473000000000000000000000082868686612069565b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061173f5761173f61418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610ee891151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106117c6576117c661418c565b6020908102919091010152600061181f7f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611d24565b60601c949350505050565b600061045a6120df565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061186d5761186d61418c565b6020908102919091010152600061103e7f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611d24565b60606000606060006118d66120df565b9050306001600160a01b038216036118ff576118f387878761211e565b9350935093505061198d565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611948908a908a908a9060040161422e565b600060405180830381865afa158015611965573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118f39190810190614257565b93509350939050565b61199e613d0e565b6119a784612226565b60e0890181905260c0890182905260a0890183905260808901849052606089018590528860208101604082018860028111156119e5576119e5613dbf565b60028111156119f6576119f6613dbf565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611a6c7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611d24565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611abb57611abb61418c565b6020026020010181815250508260001b81600181518110611ade57611ade61418c565b60209081029190910101526000611b1e7f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611d24565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611b6857611b6861418c565b6020026020010181815250508260001b81600181518110611b8b57611b8b61418c565b602002602001018181525050611bf17f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611bd491815260200190565b60408051601f19818403018152919052630100080160dd1b611c6f565b50505050565b6000611c056070601061411a565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611c796120df565b9050306001600160a01b03821603611c9d57611c988686868686612294565b611701565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611cea90899089908990899089906004016142ba565b600060405180830381600087803b158015611d0457600080fd5b505af1158015611d18573d6000803e3d6000fd5b50505050505050505050565b600080611d2f6120df565b9050306001600160a01b03821603611d5557611d4d868686866122a9565b91505061103e565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611da0908990899089908990600401614301565b602060405180830381865afa158015611dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4d9190614330565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611bf7565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611e6757611e6761418c565b602002602001018181525050611bf184826000856122d6565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611ed957611ed961418c565b602090810291909101015260008080611f327f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006118c6565b925092509250611f43838383612387565b9550955050505050915091565b60606000611f5c61182a565b90506001600160a01b0381163003611f9d576000611f84611f7b610da1565b6000878761239f565b9350905080611f9657611f96836124da565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611fe49087908790600401614071565b6000604051808303816000875af1158015612003573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261103e91908101906140cf565b6060888888888888888860405160200161204c989796959493929190614349565b604051602081830303815290604052905098975050505050505050565b60006120736120df565b9050306001600160a01b0382160361209257611c9886868686866124e2565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611cea908990899089908990899060040161438e565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680612119573391505090565b919050565b606060006060600061212f856124f8565b905061213c87878361251b565b9350600061214986612554565b9050801561221b5761215b8888612591565b935066ffffffffffffff841667ffffffffffffffff81111561217f5761217f613e6c565b6040519080825280601f01601f1916602001820160405280156121a9576020820181803683370190505b5092506020830160005b828160ff1610156122185760006121cb8b8b846125a4565b905060006121e8888460ff166028026038011c64ffffffffff1690565b90506121f78260008387612624565b612201818561411a565b935050508080612210906143df565b9150506121b3565b50505b505093509350939050565b600080600080600080600080612240896000016020015190565b60408a015160608b0151919950975060f81c600281111561226357612263613dbf565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f285856122a384876126f0565b85612721565b6000611b1e6122b886866129c5565b60ff858116601b0360080285901c166122d185876126f0565b612a1b565b60006122e06120df565b9050306001600160a01b03821603612303576122fe85858585612a6c565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061234e9088908890889088906004016143fe565b600060405180830381600087803b15801561236857600080fd5b505af115801561237c573d6000803e3d6000fd5b505050505050505050565b60008061239385612aa7565b90969095509350505050565b600060606000806123af86612abc565b90925090506001600160a01b03821661240057856123cc87612b60565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190614071565b8061240f5761240f8689612c8e565b861561247b577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061246382612cda565b9050612478826124738b8461411a565b612d53565b50505b60006124878760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146124bf576124ba88888488612def565b6124cb565b6124cb88888488612e67565b90999098509650505050505050565b805160208201fd5b6109f285858585856124f38b612ec8565b612f4d565b600060086125086002602061443d565b6125129190614450565b9190911c919050565b60608160000361253a5750604080516020810190915260008152611c68565b600061254685856129c5565b9050611b1e81600085613286565b600060086001806125676002602061443d565b612571919061443d565b61257b919061443d565b6125859190614450565b8260ff911c1692915050565b6000611c686125a084846132a9565b5490565b600083836040516020016125b9929190614467565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156126ab576020831061264e5760208304840193506020838161264a5761264a6144a3565b0692505b82156126ab5760208390036000818410156126715750600019600884021c61267b565b50600019600882021c5b8554600886021b81845116821982161784525081841161269c575050611bf1565b50600194909401939182900391015b5b602082106126cd5783548152600190930192601f19909101906020016126ac565b8115611bf1576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761271760ff601b83900360080287901c168361411a565b91506001016126f5565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036127ab57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161279e939291906144b9565b60405180910390a2611bf1565b60006127b785856129c5565b905060006127c4866132ff565b905060005b81518110156128995760008282815181106127e6576127e661418c565b602002602001015190506128126004826affffffffffffffffffffff191661338890919063ffffffff16565b15612890576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061285d908b908b908b908b906004016144ec565b600060405180830381600087803b15801561287757600080fd5b505af115801561288b573d6000803e3d6000fd5b505050505b506001016127c9565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516128ce939291906144b9565b60405180910390a26128e9828565ffffffffffff16856133a6565b60005b81518110156129bc5760008282815181106129095761290961418c565b602002602001015190506129356008826affffffffffffffffffffff191661338890919063ffffffff16565b156129b3576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612980908b908b908b908b906004016144ec565b600060405180830381600087803b15801561299a57600080fd5b505af11580156129ae573d6000803e3d6000fd5b505050505b506001016128ec565b50505050505050565b600082826040516020016129da929190614467565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612a4157602082048401935060208281612a3d57612a3d6144a3565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b6000612a788585612591565b90506000612a95828560ff166028026038011c64ffffffffff1690565b905061170186868660008588886133bc565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612af657612af661418c565b602090810291909101015260008080612b4f7f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061211e565b925092509250611f438383836137f6565b606081601081901b6000612b7383613802565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612bce57612bc97fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613819565b612c05565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612c2c57612c2783613819565b612c63565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612c7593929190614525565b6040516020818303038152906040529350505050919050565b612c98828261389f565b610afb57612ca582612b60565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e99291906145b3565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612d1357612d1361418c565b6020908102919091010152600061103e7f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6122a9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612d8957612d8961418c565b602002602001018181525050610f1d7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612dd291815260200190565b60408051601f19818403018152919052630100080160dd1b612294565b60006060836001600160a01b03166000612e0a8589896138fd565b604051612e1791906145de565b60006040518083038185875af1925050503d8060008114612e54576040519150601f19603f3d011682016040523d82523d6000602084013e612e59565b606091505b509097909650945050505050565b60006060836001600160a01b0316612e808488886138fd565b604051612e8d91906145de565b600060405180830381855af49150503d8060008114612e54576040519150601f19603f3d011682016040523d82523d6000602084013e612e59565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d000000000000000000008201612f1757507e60030220202000000000000000000000000000000000000000000000000000919050565b610439612f447f746273746f72650000000000000000005461626c6573000000000000000000008461392c565b60206000612a1b565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001603612fd957857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051612fcc94939291906145fa565b60405180910390a2611701565b6000612fe4876132ff565b905060005b81518110156130bd5760008282815181106130065761300661418c565b602002602001015190506130326001826affffffffffffffffffffff191661338890919063ffffffff16565b156130b4576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613081908c908c908c908c908c908c90600401614639565b600060405180830381600087803b15801561309b57600080fd5b505af11580156130af573d6000803e3d6000fd5b505050505b50600101612fe9565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516130f494939291906145fa565b60405180910390a2600061310888886129c5565b90506000602087019050613120826000895184613948565b600061312b85612554565b11156131af57600061313d8a8a6132a9565b878155905060208601915060008060005b61315788612554565b8160ff1610156131aa5761316c8d8d836125a4565b92506131878a8260ff166028026038011c64ffffffffff1690565b91506131968360008488613948565b6131a0828661411a565b945060010161314e565b505050505b60005b8351811015611d185760008482815181106131cf576131cf61418c565b602002602001015190506131fb6002826affffffffffffffffffffff191661338890919063ffffffff16565b1561327d576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061324a908e908e908e908e908e908e90600401614639565b600060405180830381600087803b15801561326457600080fd5b505af1158015613278573d6000803e3d6000fd5b505050505b506001016131b2565b60405160208101601f19603f84840101166040528282526106b985858584612624565b600082826040516020016132be929190614467565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106133395761333961418c565b602090810291909101015260006133717f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613a07565b905061103e6133838260008451613a41565b613acf565b60008160ff16826133998560581c90565b1660ff1614905092915050565b610f1d838383516133b78560200190565b613948565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461347c577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161343a91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e9939291600401614692565b6000613497828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836134b0919061443d565b6134ba919061411a565b90508082141580156134dc5750816134d286886146d3565b64ffffffffff1614155b1561352c576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff16111561357d576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b600061358a848984613ae0565b905060006135978b6132ff565b905060005b81518110156136625760008282815181106135b9576135b961418c565b602002602001015190506135e56010826affffffffffffffffffffff191661338890919063ffffffff16565b1561365957606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161362697969594939291906146f8565b600060405180830381600087803b15801561364057600080fd5b505af1158015613654573d6000803e3d6000fd5b505050505b5060010161359c565b5064ffffffffff881660005b8a60ff168160ff1610156136a157613695878260ff166028026038011c64ffffffffff1690565b9091019060010161366e565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516136dc96959493929190614756565b60405180910390a2508284146136fd5760006136f88c8c6132a9565b839055505b600061370a8c8c8c6125a4565b905061371e818a64ffffffffff16896133a6565b5060005b81518110156137e857600082828151811061373f5761373f61418c565b6020026020010151905061376b6020826affffffffffffffffffffff191661338890919063ffffffff16565b156137df57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016137ac97969594939291906146f8565b600060405180830381600087803b1580156137c657600080fd5b505af11580156137da573d6000803e3d6000fd5b505050505b50600101613722565b505050505050505050505050565b60008061239385613bae565b60006138106070601061411a565b9190911b919050565b606060005b601081101561386f576fffffffffffffffffffffffffffffffff198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561386f5760010161381e565b604080516fffffffffffffffffffffffffffffffff1985166020820152815160309091019091528181528061103e565b60006138ed7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613bca565b80611c685750611c688383613bca565b6060838383604051602001613914939291906147b2565b60405160208183030381529060405290509392505050565b60408051602081018490529081018290526000906060016129da565b82156139c257602083106139725760208304840193506020838161396e5761396e6144a3565b0692505b82156139c25760208390036000600019600885021c1990506008850281811c91508351811c90508119875416828216178755508184116139b3575050611bf1565b50600194909401939182900391015b5b602082106139e45780518455600190930192601f19909101906020016139c3565b8115611bf1576000600019600884021c8554835182191691161785555050505050565b606061103e613a178585856125a4565b6000613a3c85613a278989612591565b9060ff166028026038011c64ffffffffff1690565b613286565b600081831180613a515750835182115b15613a8e578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e9939291906147f1565b60208401613a9c848261411a565b90506000613aaa858561443d565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611c688360156000613c93565b600064ffffffffff821115613b24576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613b565780850382019150613b5e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612ab5565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613c0357613c0361418c565b602002602001018181525050826001600160a01b031660001b81600181518110613c2f57613c2f61418c565b60209081029190910101526000613c877f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006122a9565b9050611b1e8160f81c90565b60606000613ca18560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613cc757613cc76144a3565b04905060405193506020840160208202810160405281855260005b82811015613d02578451871c825293870193602090910190600101613ce2565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613d3b57613d3b613dbf565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613d7657600080fd5b5035919050565b600060208284031215613d8f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c6857600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613df357634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613e1881613dd5565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613df357600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613eab57613eab613e6c565b604052919050565b600067ffffffffffffffff821115613ecd57613ecd613e6c565b50601f01601f191660200190565b600082601f830112613eec57600080fd5b8135613eff613efa82613eb3565b613e82565b818152846020838601011115613f1457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613f4657600080fd5b8335613f5181613e57565b925060208401359150604084013567ffffffffffffffff811115613f7457600080fd5b613f8086828701613edb565b9150509250925092565b60208101613f9783613dd5565b91905290565b600080600060608486031215613fb257600080fd5b8335925060208401359150604084013560038110613fcf57600080fd5b809150509250925092565b60008060408385031215613fed57600080fd5b82359150602083013567ffffffffffffffff81111561400b57600080fd5b61401785828601613edb565b9150509250929050565b60005b8381101561403c578181015183820152602001614024565b50506000910152565b6000815180845261405d816020860160208601614021565b601f01601f19169290920160200192915050565b82815260406020820152600061103e6040830184614045565b600082601f83011261409b57600080fd5b81516140a9613efa82613eb3565b8181528460208386010111156140be57600080fd5b61103e826020830160208701614021565b6000602082840312156140e157600080fd5b815167ffffffffffffffff8111156140f857600080fd5b61103e8482850161408a565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439614104565b6000600019820361414057614140614104565b5060010190565b60006020828403121561415957600080fd5b8151611c6881613e57565b83815261417083613dd5565b826020820152606060408201526000611b1e6060830184614045565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156141ea5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561422357815187529582019590820190600101614207565b509495945050505050565b83815260606020820152600061424760608301856141f2565b9050826040830152949350505050565b60008060006060848603121561426c57600080fd5b835167ffffffffffffffff8082111561428457600080fd5b6142908783880161408a565b94506020860151935060408601519150808211156142ad57600080fd5b50613f808682870161408a565b85815260a0602082015260006142d360a08301876141f2565b60ff8616604084015282810360608401526142ee8186614045565b9150508260808301529695505050505050565b84815260806020820152600061431a60808301866141f2565b60ff949094166040830152506060015292915050565b60006020828403121561434257600080fd5b5051919050565b88815287602082015261435b87613dd5565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006143a760a08301876141f2565b82810360408401526143b98187614045565b905084606084015282810360808401526143d38185614045565b98975050505050505050565b600060ff821660ff81036143f5576143f5614104565b60010192915050565b84815260806020820152600061441760808301866141f2565b60ff8516604084015282810360608401526144328185614045565b979650505050505050565b8181038181111561043957610439614104565b808202811582820484141761043957610439614104565b8281526000602080830184516020860160005b828110156144965781518452928401929084019060010161447a565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006144cc60608301866141f2565b65ffffffffffff851660208401528281036040840152610d978185614045565b84815260806020820152600061450560808301866141f2565b65ffffffffffff8516604084015282810360608401526144328185614045565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451614586816003860160208901614021565b8084019050816003820152845191506145a6826004830160208801614021565b0160040195945050505050565b6040815260006145c66040830185614045565b90506001600160a01b03831660208301529392505050565b600082516145f0818460208701614021565b9190910192915050565b60808152600061460d60808301876141f2565b828103602084015261461f8187614045565b905084604084015282810360608401526144328185614045565b86815260c06020820152600061465260c08301886141f2565b82810360408401526146648188614045565b9050856060840152828103608084015261467e8186614045565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611b1e6060830184614045565b64ffffffffff8181168382160190808211156146f1576146f1614104565b5092915050565b87815260e06020820152600061471160e08301896141f2565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526147488185614045565b9a9950505050505050505050565b60c08152600061476960c08301896141f2565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526147a58185614045565b9998505050505050505050565b600084516147c4818460208901614021565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006148046060830186614045565b6020830194909452506040015291905056fea264697066735822122086d244e76566d88f08574505a94c682c41e0427c140ef488ae6e6840ef8c383e64736f6c63430008180033","sourceMap":"1812:6136:211:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:144;;;;;;;;;;-1:-1:-1;2973:144:211;;;;;:::i;:::-;3106:2;3082:26;;2973:144;;;;-1:-1:-1;;;;;363:55:228;;;345:74;;333:2;318:18;2973:144:211;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:228;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:228;7822:124:211;;;;;;;;;;-1:-1:-1;7822:124:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;3893:837:211:-;;;;;;;;;;-1:-1:-1;3893:837:211;;;;;:::i;:::-;;:::i;:::-;;;4284:25:228;;;4272:2;4257:18;3893:837:211;4138:177:228;5992:492:211;;;;;;;;;;-1:-1:-1;5992:492:211;;;;;:::i;:::-;;:::i;1989:129::-;;;;;;;;;;-1:-1:-1;1989:129:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1853:130:211;;;;;;;;;;-1:-1:-1;1853:130:211;;;;;:::i;:::-;;:::i;3123:413::-;;;;;;;;;;-1:-1:-1;3123:413:211;;;;;:::i;:::-;;:::i;4736:545::-;;;;;;:::i;:::-;;:::i;:::-;;2460:266;;;;;;;;;;-1:-1:-1;2460:266:211;;;;;:::i;:::-;;:::i;6490:219::-;;;;;;;;;;-1:-1:-1;6490:219:211;;;;;:::i;:::-;;:::i;5287:699::-;;;;;;;;;;-1:-1:-1;5287:699:211;;;;;:::i;:::-;;:::i;7555:125::-;;;;;;;;;;-1:-1:-1;7555:125:211;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7686:130:211:-;;;;;;;;;;-1:-1:-1;7686:130:211;;;;;:::i;:::-;;:::i;2732:143::-;;;;;;;;;;-1:-1:-1;2732:143:211;;;;;:::i;:::-;2830:37;;;2732:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7822:124:211:-;7882:16;;:::i;:::-;7917:22;7927:11;7917:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;3893:837:211:-;4003:19;4038:24;4065:28;:26;:28::i;:::-;4038:55;-1:-1:-1;4130:16:211;4111:35;;4103:83;;;;-1:-1:-1;;;4103:83:211;;5935:2:228;4103:83:211;;;5917:21:228;5974:2;5954:18;;;5947:30;6013:34;5993:18;;;5986:62;6084:5;6064:18;;;6057:33;6107:19;;4103:83:211;;;;;;;;;4203:8;:6;:8::i;:::-;-1:-1:-1;;;;;4196:21:211;;4231:37;4247:20;4231:15;:37::i;:::-;4270:65;;-1:-1:-1;;;;;6329:55:228;;4270:65:211;;;6311:74:228;6401:18;;;6394:34;;;6284:18;;4270:65:211;;;-1:-1:-1;;4270:65:211;;;;;;;;;;;;;;;;;;;;4196:149;;4270:65;4196:149;;;;;;;;;4270:65;4196:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4196:149:211;;;;;;;;;;;;:::i;:::-;;4369:35;4387:16;4369:17;:35::i;:::-;4355:49;;4414:41;4434:11;4447:7;4414:19;:41::i;:::-;4465:52;4487:11;4500:16;4465:21;:52::i;:::-;4536:25;4556:4;4536:19;:25::i;:::-;4535:26;4527:58;;;;-1:-1:-1;;;4527:58:211;;8342:2:228;4527:58:211;;;8324:21:228;8381:2;8361:18;;;8354:30;8420:21;8400:18;;;8393:49;8459:18;;4527:58:211;8140:343:228;4527:58:211;4595:31;4615:4;4621;4595:19;:31::i;:::-;4636:37;4655:11;4668:4;4636:18;:37::i;:::-;4683:40;4696:16;4714:8;4683:12;:40::i;:::-;4028:702;3893:837;;;;;:::o;5992:492::-;6067:20;6117:14;6128:2;6117:10;:14::i;:::-;6103:10;:28;6099:379;;-1:-1:-1;6162:2:211;5992:492;;;:::o;6099:379::-;6200:9;6195:273;6215:2;6211:1;:6;6195:273;;;6259:10;6242:13;6253:1;6242:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;6293:10:211;6273:17;6284:5;:1;6288;6284:5;:::i;:::-;6273:10;:17::i;:::-;:30;6242:61;6238:155;;;6342:5;:1;6346;6342:5;:::i;:::-;6327:20;;6369:5;;6238:155;6432:3;;;;:::i;:::-;;;;6195:273;;;;5992:492;;;:::o;1989:129::-;2049:14;2084:27;2099:11;2084:14;:27::i;1853:130::-;1912:13;1945:31;1964:11;1945:18;:31::i;3123:413::-;3193:4;3209:20;3232:28;3248:11;3106:2;3082:26;;2973:144;3232:28;3209:51;-1:-1:-1;2830:37:211;;;3270:15;3359:17;:15;:17::i;:::-;-1:-1:-1;;;;;3359:25:211;;3385:7;3359:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3359:34:211;;;;;;;;;;;;;;;;;;;-1:-1:-1;3359:34:211;;;;;;;;-1:-1:-1;;3359:34:211;;;;;;;;;;;;:::i;:::-;;;3355:135;;;3436:17;:15;:17::i;:::-;-1:-1:-1;;;;;3436:25:211;;3462:7;3436:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3436:34:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3426:44;;3394:87;3355:135;3517:12;-1:-1:-1;;;;;3506:23:211;:7;-1:-1:-1;;;;;3506:23:211;;3499:30;;;;;3123:413;;;:::o;4736:545::-;4851:33;4872:11;4851:20;:33::i;:::-;4850:34;4842:90;;;;-1:-1:-1;;;4842:90:211;;9465:2:228;4842:90:211;;;9447:21:228;9504:2;9484:18;;;9477:30;9543:34;9523:18;;;9516:62;9614:13;9594:18;;;9587:41;9645:19;;4842:90:211;9263:407:228;4842:90:211;4950:21;4959:11;4950:8;:21::i;:::-;4942:53;;;;-1:-1:-1;;;4942:53:211;;9877:2:228;4942:53:211;;;9859:21:228;9916:2;9896:18;;;9889:30;9955:21;9935:18;;;9928:49;9994:18;;4942:53:211;9675:343:228;4942:53:211;5005:26;5073:34;5088:11;5101:5;5073:14;:34::i;:::-;5164:110;5217:16;5235:11;5259;5248:23;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5248:23:211;;;;-1:-1:-1;;5248:23:211;;;;;;;;;;5182:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5182:91:211;;;;;;;;;;;;;;;;;;;;5164:17;:110::i;:::-;;4832:449;4736:545;;;:::o;2460:266::-;2534:19;2565:20;2588:17;:15;:17::i;:::-;-1:-1:-1;;;;;2588:25:211;;2614:16;2588:43;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;2588:43:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2697:2;2663:36;-1:-1:-1;;2663:36:211;:55;;;;;;-1:-1:-1;;2460:266:211:o;6490:219::-;6584:21;6593:11;6584:8;:21::i;:::-;6576:60;;;;-1:-1:-1;;;6576:60:211;;10654:2:228;6576:60:211;;;10636:21:228;10693:2;10673:18;;;10666:30;10732:28;10712:18;;;10705:56;10778:18;;6576:60:211;10452:350:228;6576:60:211;6646:56;2830:37;;;6693:8;6646:12;:56::i;:::-;6490:219;;:::o;5287:699::-;5352:21;5361:11;5352:8;:21::i;:::-;5344:52;;;;-1:-1:-1;;;5344:52:211;;11009:2:228;5344:52:211;;;10991:21:228;11048:2;11028:18;;;11021:30;11087:20;11067:18;;;11060:48;11125:18;;5344:52:211;10807:342:228;5344:52:211;5415:33;5436:11;5415:20;:33::i;:::-;5414:34;5406:72;;;;-1:-1:-1;;;5406:72:211;;11356:2:228;5406:72:211;;;11338:21:228;11395:2;11375:18;;;11368:30;11434:27;11414:18;;;11407:55;11479:18;;5406:72:211;11154:349:228;5406:72:211;5488:26;5517:22;5527:11;5517:9;:22::i;:::-;5567:1;5549:15;;;:19;5607:23;;;;5578:19;;;:53;5488:51;-1:-1:-1;5641:33:211;5651:11;5488:51;5641:9;:33::i;:::-;5691:8;:6;:8::i;:::-;5684:51;;;;;;;;11708:25:228;;;5727:7:211;11749:18:228;;;11742:34;-1:-1:-1;;;;;5684:29:211;;;;;;;11681:18:228;;5684:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5783:8;:6;:8::i;:::-;-1:-1:-1;;;;;5776:38:211;;5815:11;5776:51;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5776:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5940:39;5961:11;5974:4;5940:20;:39::i;7555:125::-;7615:7;7641:32;7661:11;7641:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7686:130:211:-;7751:7;7777:32;7797:11;7777:19;:32::i;13270:402:195:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:195;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:195:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;6889:347:211:-;6945:7;6964:25;6992:42;:40;:42::i;:::-;6964:70;;7044:24;7071:50;7099:17;7119:1;7071:19;:50::i;:::-;:54;;7124:1;7071:54;:::i;:::-;7044:81;;7135:61;7155:17;7174:1;7178:16;7135:19;:61::i;1157:186:219:-;1215:10;1240:100;1275:15;1303:9;1320:18;1240:25;:100::i;4730:249:179:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:179;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;12125:2:228;12121:15;;;;-1:-1:-1;;12117:88:228;12105:101;;12231:2;12222:12;;11976:264;4934:25:179;;;;-1:-1:-1;;4934:25:179;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:179;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12374:19:228;;12418:2;12409:12;;12245:182;2594:287:190;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:190;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:190:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:190;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12583:14:228;12576:22;12571:3;12567:32;12555:45;;12625:1;12616:11;;12432:201;4085:25:190;;;;-1:-1:-1;;4085:25:190;;;;;;;;;1198:66;4034:26;:91::i;5941:246:179:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:179;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12374:19:228;;12418:2;12409:12;;12245:182;6715:168:211;6797:79;6818:38;6835:20;6818:16;:38::i;:::-;6858:7;6867:8;6797:20;:79::i;3297:296:184:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:184;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:184;:64::i;5624:288:195:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:195;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:195;;;;5878:29;;;;;;;;:::i;5306:279:179:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:179;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2279:175:211:-;2329:30;2404:42;:40;:42::i;6512:295:179:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:179;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;7382:167:211:-;7444:4;7483:17;:15;:17::i;:::-;:59;;;;;2830:37;;;7483:59;;;4284:25:228;-1:-1:-1;;;;;7483:25:211;;;;;;;4257:18:228;;7483:59:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7467:75:211;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7467:75:211;;;7382:167;-1:-1:-1;;7382:167:211:o;6279:248:195:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:195;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;12970:3:228;12966:16;;;;12984:66;12962:89;12950:102;;13077:1;13068:11;;12825:260;6477:30:195;;;;-1:-1:-1;;6477:30:195;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13646:98:228;13619:18;;3713:52:107;13502:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;15666:552:195:-;15737:24;15764:207;15784:6;:15;;;15807:6;:14;;;15829:6;:12;;;15849:6;:19;;;15876:6;:20;;;15904:6;:16;;;15928:6;:17;;;15953:6;:12;;;15764;:207::i;:::-;16075:16;;;16089:1;16075:16;;;;;;;;;15737:234;;-1:-1:-1;15978:30:195;;16014:25;;15978:30;;16075:16;;;;;;;;;;;;-1:-1:-1;16075:16:195;16046:45;;16112:8;16097:9;16107:1;16097:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;16127:86;1310:66;16159:9;16170:11;16183:15;16200:12;16127:21;:86::i;:::-;15731:487;;;;15666:552;;:::o;7183:249:179:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:179;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12583:14:228;12576:22;12571:3;12567:32;12555:45;;12625:1;12616:11;;12432:201;4071:290:179;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:195:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:195;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:195:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:195;;;;-1:-1:-1;17879:370:195;;;-1:-1:-1;;;;;17879:370:195:o;5147:257:196:-;5258:16;;;5199:22;5258:16;;;;;;;;;5281:13;5297:64;1269:66;5229:45;5345:1;1398:66;5297:26;:64::i;:::-;5375:23;;;5147:257;-1:-1:-1;;;5147:257:196:o;2640:388:181:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:181;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:181;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:181;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:181:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:181;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:181;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12374:19:228;;12418:2;12409:12;;12245:182;4646:27:181;;;;-1:-1:-1;;4646:27:181;;;;;;;;;-1:-1:-1;;;4595:26:181;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;18916:362:195:-;19145:12;19189:8;19199:7;19208:5;19215:12;19229:13;19244:9;19255:10;19267:5;19172:101;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19165:108;;18916:362;;;;;;;;;;:::o;6458:480:46:-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;6692:242::-;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;1836:227::-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:195:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:195;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:195;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:195;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:195;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:195;-1:-1:-1;;16961:760:195:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;12066:286:45;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12374:19:228;;12418:2;12409:12;;12245:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4015:652:45;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12374:19:228;;12418:2;12409:12;;12245:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25930:12:228;25969:15;;;45340:92:45;;;25951:34:228;26021:15;;;26001:18;;;25994:43;26073:15;;26053:18;;;26046:43;25893:18;;45340:92:45;25724:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;26273:25:228;;;26346:12;26334:25;;26314:18;;;26307:53;26246:18;;45581:74:45;26100:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;28211:79:228;;2092:30:124;;;28199:92:228;2092:30:124;;28307:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;51249:282:45:-;51494:30;;;;;;29054:19:228;;;29089:12;;;29082:28;;;51337:7:45;;29126:12:228;;51494:30:45;28865:279:228;1489:2340:44;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:228;;;4257:18;;7664:67:24;4138:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:190;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:190;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:228:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:228;;14:180;-1:-1:-1;14:180:228:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:228;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:228;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1208:200;1148:266;:::o;1419:777::-;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:228;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:228;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:228;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:228:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:228;3037:15;-1:-1:-1;;3033:88:228;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:228:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:228;3925:18;;3912:32;;-1:-1:-1;3995:2:228;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4687:235::-;4833:2;4818:18;;4845:37;4875:6;4845:37;:::i;:::-;4891:25;;;4687:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:390::-;5416:6;5424;5477:2;5465:9;5456:7;5452:23;5448:32;5445:52;;;5493:1;5490;5483:12;5445:52;5529:9;5516:23;5506:33;;5590:2;5579:9;5575:18;5562:32;5617:18;5609:6;5606:30;5603:50;;;5649:1;5646;5639:12;5603:50;5672;5714:7;5705:6;5694:9;5690:22;5672:50;:::i;:::-;5662:60;;;5338:390;;;;;:::o;6439:250::-;6524:1;6534:113;6548:6;6545:1;6542:13;6534:113;;;6624:11;;;6618:18;6605:11;;;6598:39;6570:2;6563:10;6534:113;;;-1:-1:-1;;6681:1:228;6663:16;;6656:27;6439:250::o;6694:329::-;6735:3;6773:5;6767:12;6800:6;6795:3;6788:19;6816:76;6885:6;6878:4;6873:3;6869:14;6862:4;6855:5;6851:16;6816:76;:::i;:::-;6937:2;6925:15;-1:-1:-1;;6921:88:228;6912:98;;;;7012:4;6908:109;;6694:329;-1:-1:-1;;6694:329:228:o;7028:320::-;7235:6;7224:9;7217:25;7278:2;7273;7262:9;7258:18;7251:30;7198:4;7298:44;7338:2;7327:9;7323:18;7315:6;7298:44;:::i;7353:442::-;7406:5;7459:3;7452:4;7444:6;7440:17;7436:27;7426:55;;7477:1;7474;7467:12;7426:55;7506:6;7500:13;7537:49;7553:32;7582:2;7553:32;:::i;7537:49::-;7611:2;7602:7;7595:19;7657:3;7650:4;7645:2;7637:6;7633:15;7629:26;7626:35;7623:55;;;7674:1;7671;7664:12;7623:55;7687:77;7761:2;7754:4;7745:7;7741:18;7734:4;7726:6;7722:17;7687:77;:::i;7800:335::-;7879:6;7932:2;7920:9;7911:7;7907:23;7903:32;7900:52;;;7948:1;7945;7938:12;7900:52;7981:9;7975:16;8014:18;8006:6;8003:30;8000:50;;;8046:1;8043;8036:12;8000:50;8069:60;8121:7;8112:6;8101:9;8097:22;8069:60;:::i;8488:184::-;-1:-1:-1;;;8537:1:228;8530:88;8637:4;8634:1;8627:15;8661:4;8658:1;8651:15;8677:125;8742:9;;;8763:10;;;8760:36;;;8776:18;;:::i;8807:195::-;8846:3;-1:-1:-1;;8870:5:228;8867:77;8864:103;;8947:18;;:::i;:::-;-1:-1:-1;8994:1:228;8983:13;;8807:195::o;9007:251::-;9077:6;9130:2;9118:9;9109:7;9105:23;9101:32;9098:52;;;9146:1;9143;9136:12;9098:52;9178:9;9172:16;9197:31;9222:5;9197:31;:::i;10023:424::-;10245:6;10234:9;10227:25;10261:37;10291:6;10261:37;:::i;:::-;10334:6;10329:2;10318:9;10314:18;10307:34;10377:2;10372;10361:9;10357:18;10350:30;10208:4;10397:44;10437:2;10426:9;10422:18;10414:6;10397:44;:::i;11787:184::-;-1:-1:-1;;;11836:1:228;11829:88;11936:4;11933:1;11926:15;11960:4;11957:1;11950:15;13090:407;13173:5;13213;13207:12;13255:4;13248:5;13244:16;13238:23;13280:66;13372:2;13368;13364:11;13355:20;;13398:1;13390:6;13387:13;13384:107;;;13478:2;13472;13462:6;13459:1;13455:14;13452:1;13448:22;13444:31;13440:2;13436:40;13432:49;13423:58;;13384:107;;;;13090:407;;;:::o;13755:439::-;13808:3;13846:5;13840:12;13873:6;13868:3;13861:19;13899:4;13928;13923:3;13919:14;13912:21;;13967:4;13960:5;13956:16;13990:1;14000:169;14014:6;14011:1;14008:13;14000:169;;;14075:13;;14063:26;;14109:12;;;;14144:15;;;;14036:1;14029:9;14000:169;;;-1:-1:-1;14185:3:228;;13755:439;-1:-1:-1;;;;;13755:439:228:o;14199:468::-;14499:6;14488:9;14481:25;14542:2;14537;14526:9;14522:18;14515:30;14462:4;14562:56;14614:2;14603:9;14599:18;14591:6;14562:56;:::i;:::-;14554:64;;14654:6;14649:2;14638:9;14634:18;14627:34;14199:468;;;;;;:::o;14672:655::-;14814:6;14822;14830;14883:2;14871:9;14862:7;14858:23;14854:32;14851:52;;;14899:1;14896;14889:12;14851:52;14932:9;14926:16;14961:18;15002:2;14994:6;14991:14;14988:34;;;15018:1;15015;15008:12;14988:34;15041:60;15093:7;15084:6;15073:9;15069:22;15041:60;:::i;:::-;15031:70;;15141:2;15130:9;15126:18;15120:25;15110:35;;15191:2;15180:9;15176:18;15170:25;15154:41;;15220:2;15210:8;15207:16;15204:36;;;15236:1;15233;15226:12;15204:36;;15259:62;15313:7;15302:8;15291:9;15287:24;15259:62;:::i;15332:709::-;15702:6;15691:9;15684:25;15745:3;15740:2;15729:9;15725:18;15718:31;15665:4;15772:57;15824:3;15813:9;15809:19;15801:6;15772:57;:::i;:::-;15877:4;15869:6;15865:17;15860:2;15849:9;15845:18;15838:45;15931:9;15923:6;15919:22;15914:2;15903:9;15899:18;15892:50;15959:32;15984:6;15976;15959:32;:::i;:::-;15951:40;;;16028:6;16022:3;16011:9;16007:19;16000:35;15332:709;;;;;;;;:::o;16046:548::-;16370:6;16359:9;16352:25;16413:3;16408:2;16397:9;16393:18;16386:31;16333:4;16434:57;16486:3;16475:9;16471:19;16463:6;16434:57;:::i;:::-;16539:4;16527:17;;;;16522:2;16507:18;;16500:45;-1:-1:-1;16576:2:228;16561:18;16554:34;16426:65;16046:548;-1:-1:-1;;16046:548:228:o;16599:184::-;16669:6;16722:2;16710:9;16701:7;16697:23;16693:32;16690:52;;;16738:1;16735;16728:12;16690:52;-1:-1:-1;16761:16:228;;16599:184;-1:-1:-1;16599:184:228:o;16788:707::-;17135:6;17130:3;17123:19;17172:6;17167:2;17162:3;17158:12;17151:28;17188:37;17218:6;17188:37;:::i;:::-;17259:3;17255:16;;;;17250:2;17241:12;;17234:38;17297:2;17288:12;;17281:28;;;;17334:2;17325:12;;17318:28;;;;17371:3;17362:13;;17355:29;17409:3;17400:13;;17393:29;17447:3;17438:13;;17431:29;17485:3;17476:13;;16788:707;-1:-1:-1;;16788:707:228:o;17500:794::-;17895:6;17884:9;17877:25;17938:3;17933:2;17922:9;17918:18;17911:31;17858:4;17965:57;18017:3;18006:9;18002:19;17994:6;17965:57;:::i;:::-;18070:9;18062:6;18058:22;18053:2;18042:9;18038:18;18031:50;18104:32;18129:6;18121;18104:32;:::i;:::-;18090:46;;18172:6;18167:2;18156:9;18152:18;18145:34;18228:9;18220:6;18216:22;18210:3;18199:9;18195:19;18188:51;18256:32;18281:6;18273;18256:32;:::i;:::-;18248:40;17500:794;-1:-1:-1;;;;;;;;17500:794:228:o;18299:175::-;18336:3;18380:4;18373:5;18369:16;18409:4;18400:7;18397:17;18394:43;;18417:18;;:::i;:::-;18466:1;18453:15;;18299:175;-1:-1:-1;;18299:175:228:o;18479:604::-;18788:6;18777:9;18770:25;18831:3;18826:2;18815:9;18811:18;18804:31;18751:4;18858:57;18910:3;18899:9;18895:19;18887:6;18858:57;:::i;:::-;18963:4;18955:6;18951:17;18946:2;18935:9;18931:18;18924:45;19017:9;19009:6;19005:22;19000:2;18989:9;18985:18;18978:50;19045:32;19070:6;19062;19045:32;:::i;:::-;19037:40;18479:604;-1:-1:-1;;;;;;;18479:604:228:o;19415:128::-;19482:9;;;19503:11;;;19500:37;;;19517:18;;:::i;19548:168::-;19621:9;;;19652;;19669:15;;;19663:22;;19649:37;19639:71;;19690:18;;:::i;19721:640::-;19972:6;19967:3;19960:19;19942:3;19998:2;20031;20026:3;20022:12;20063:6;20057:13;20128:2;20120:6;20116:15;20149:1;20159:175;20173:6;20170:1;20167:13;20159:175;;;20236:13;;20222:28;;20272:14;;;;20309:15;;;;20195:1;20188:9;20159:175;;;-1:-1:-1;20350:5:228;;19721:640;-1:-1:-1;;;;;;;19721:640:228:o;20366:184::-;-1:-1:-1;;;20415:1:228;20408:88;20515:4;20512:1;20505:15;20539:4;20536:1;20529:15;20555:511;20806:2;20795:9;20788:21;20769:4;20832:56;20884:2;20873:9;20869:18;20861:6;20832:56;:::i;:::-;20936:14;20928:6;20924:27;20919:2;20908:9;20904:18;20897:55;21000:9;20992:6;20988:22;20983:2;20972:9;20968:18;20961:50;21028:32;21053:6;21045;21028:32;:::i;21071:616::-;21382:6;21371:9;21364:25;21425:3;21420:2;21409:9;21405:18;21398:31;21345:4;21452:57;21504:3;21493:9;21489:19;21481:6;21452:57;:::i;:::-;21557:14;21549:6;21545:27;21540:2;21529:9;21525:18;21518:55;21621:9;21613:6;21609:22;21604:2;21593:9;21589:18;21582:50;21649:32;21674:6;21666;21649:32;:::i;21692:925::-;22141:66;22133:6;22129:79;22124:3;22117:92;22099:3;22228;22260:2;22256:1;22251:3;22247:11;22240:23;22292:6;22286:13;22308:74;22375:6;22371:1;22366:3;22362:11;22355:4;22347:6;22343:17;22308:74;:::i;:::-;22410:6;22405:3;22401:16;22391:26;;22445:2;22441:1;22437:2;22433:10;22426:22;22479:6;22473:13;22457:29;;22495:75;22561:8;22557:1;22553:2;22549:10;22542:4;22534:6;22530:17;22495:75;:::i;:::-;22590:17;22609:1;22586:25;;21692:925;-1:-1:-1;;;;;21692:925:228:o;22622:339::-;22799:2;22788:9;22781:21;22762:4;22819:44;22859:2;22848:9;22844:18;22836:6;22819:44;:::i;:::-;22811:52;;-1:-1:-1;;;;;22903:6:228;22899:55;22894:2;22883:9;22879:18;22872:83;22622:339;;;;;:::o;22966:287::-;23095:3;23133:6;23127:13;23149:66;23208:6;23203:3;23196:4;23188:6;23184:17;23149:66;:::i;:::-;23231:16;;;;;22966:287;-1:-1:-1;;22966:287:228:o;23258:690::-;23593:3;23582:9;23575:22;23556:4;23620:57;23672:3;23661:9;23657:19;23649:6;23620:57;:::i;:::-;23725:9;23717:6;23713:22;23708:2;23697:9;23693:18;23686:50;23759:32;23784:6;23776;23759:32;:::i;:::-;23745:46;;23827:6;23822:2;23811:9;23807:18;23800:34;23882:9;23874:6;23870:22;23865:2;23854:9;23850:18;23843:50;23910:32;23935:6;23927;23910:32;:::i;23953:899::-;24409:6;24398:9;24391:25;24452:3;24447:2;24436:9;24432:18;24425:31;24372:4;24479:57;24531:3;24520:9;24516:19;24508:6;24479:57;:::i;:::-;24584:9;24576:6;24572:22;24567:2;24556:9;24552:18;24545:50;24618:32;24643:6;24635;24618:32;:::i;:::-;24604:46;;24686:6;24681:2;24670:9;24666:18;24659:34;24742:9;24734:6;24730:22;24724:3;24713:9;24709:19;24702:51;24770:32;24795:6;24787;24770:32;:::i;:::-;24762:40;;;24839:6;24833:3;24822:9;24818:19;24811:35;23953:899;;;;;;;;;:::o;25076:464::-;25323:66;25315:6;25311:79;25300:9;25293:98;25427:6;25422:2;25411:9;25407:18;25400:34;25470:2;25465;25454:9;25450:18;25443:30;25274:4;25490:44;25530:2;25519:9;25515:18;25507:6;25490:44;:::i;25545:174::-;25612:12;25644:10;;;25656;;;25640:27;;25679:11;;;25676:37;;;25693:18;;:::i;:::-;25676:37;25545:174;;;;:::o;26371:901::-;26796:6;26785:9;26778:25;26839:3;26834:2;26823:9;26819:18;26812:31;26759:4;26866:57;26918:3;26907:9;26903:19;26895:6;26866:57;:::i;:::-;26971:4;26959:17;;26954:2;26939:18;;26932:45;26996:12;27044:15;;;27039:2;27024:18;;27017:43;27097:15;;27091:3;27076:19;;27069:44;27144:3;27129:19;;27122:35;;;27194:22;;;27188:3;27173:19;;27166:51;27234:32;27198:6;27251;27234:32;:::i;:::-;27226:40;26371:901;-1:-1:-1;;;;;;;;;;26371:901:228:o;27277:788::-;27642:3;27631:9;27624:22;27605:4;27669:57;27721:3;27710:9;27706:19;27698:6;27669:57;:::i;:::-;27774:4;27766:6;27762:17;27757:2;27746:9;27742:18;27735:45;27828:14;27820:6;27816:27;27811:2;27800:9;27796:18;27789:55;27892:12;27884:6;27880:25;27875:2;27864:9;27860:18;27853:53;27943:6;27937:3;27926:9;27922:19;27915:35;27999:9;27991:6;27987:22;27981:3;27970:9;27966:19;27959:51;28027:32;28052:6;28044;28027:32;:::i;:::-;28019:40;27277:788;-1:-1:-1;;;;;;;;;27277:788:228:o;28330:530::-;28515:3;28553:6;28547:13;28569:66;28628:6;28623:3;28616:4;28608:6;28604:17;28569:66;:::i;:::-;28704:2;28700:15;;;;-1:-1:-1;;28696:88:228;28657:16;;;;28682:103;;;28812:2;28801:14;;28794:30;;;;28851:2;28840:14;;28330:530;-1:-1:-1;;28330:530:228:o;29149:359::-;29352:2;29341:9;29334:21;29315:4;29372:44;29412:2;29401:9;29397:18;29389:6;29372:44;:::i;:::-;29447:2;29432:18;;29425:34;;;;-1:-1:-1;29490:2:228;29475:18;29468:34;29364:52;29149:359;-1:-1:-1;29149:359:228:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentAvailableLevel(uint256)":"1ecb393f","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c\",\"dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x7834b231d52ef04eb87b4761370bcf88eb0c52631c0ff6ee85206c0db3224366\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51b55193bdcbf73603b110402cd21c6a0aa6b6f6b5a726ff8f971613d637a7ec\",\"dweb:/ipfs/QmS9qHiN8ncErnZGYj7e9HWDhpFBEhTCDpwtkdFghriZTi\"]},\"src/utils.sol\":{\"keccak256\":\"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57\",\"dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059","urls":["bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c","dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0x7834b231d52ef04eb87b4761370bcf88eb0c52631c0ff6ee85206c0db3224366","urls":["bzz-raw://51b55193bdcbf73603b110402cd21c6a0aa6b6f6b5a726ff8f971613d637a7ec","dweb:/ipfs/QmS9qHiN8ncErnZGYj7e9HWDhpFBEhTCDpwtkdFghriZTi"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc","urls":["bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57","dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q"],"license":"MIT"}},"version":1},"id":211} \ No newline at end of file diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json b/packages/contracts/out/IWorld.sol/IWorld.abi.json index eaec4d9d7..2178e955a 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json @@ -363,6 +363,47 @@ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "UD__dropGold", + "inputs": [ + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "UD__dropItem", + "inputs": [ + { + "name": "itemId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__dropItems", @@ -803,6 +844,19 @@ ], "stateMutability": "view" }, + { + "type": "function", + "name": "UD__getLootManagerSystem", + "inputs": [], + "outputs": [ + { + "name": "_lootManager", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "UD__getMob", diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts index 61efabd48..cef29a393 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts @@ -363,6 +363,47 @@ declare const abi: [ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "UD__dropGold", + "inputs": [ + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "UD__dropItem", + "inputs": [ + { + "name": "itemId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__dropItems", @@ -803,6 +844,19 @@ declare const abi: [ ], "stateMutability": "view" }, + { + "type": "function", + "name": "UD__getLootManagerSystem", + "inputs": [], + "outputs": [ + { + "name": "_lootManager", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "UD__getMob", diff --git a/packages/contracts/out/IWorld.sol/IWorld.json b/packages/contracts/out/IWorld.sol/IWorld.json index e20076ffa..38fcf7418 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.json +++ b/packages/contracts/out/IWorld.sol/IWorld.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"UD___calculateMagicAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD___calculatePhysicalAttack","inputs":[{"name":"attackStats","type":"tuple","internalType":"struct PhysicalAttackStats","components":[{"name":"bonusDamage","type":"int256","internalType":"int256"},{"name":"armorPenetration","type":"int256","internalType":"int256"},{"name":"attackModifierBonus","type":"int256","internalType":"int256"},{"name":"critChanceBonus","type":"int256","internalType":"int256"}]},{"name":"attackerId","type":"bytes32","internalType":"bytes32"},{"name":"defenderId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"damage","type":"int256","internalType":"int256"},{"name":"hit","type":"bool","internalType":"bool"},{"name":"crit","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__applyEquipmentBonuses","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"modifiedStats","type":"tuple","internalType":"struct AdjustedCombatStats","components":[{"name":"adjustedStrength","type":"uint256","internalType":"uint256"},{"name":"adjustedAgility","type":"uint256","internalType":"uint256"},{"name":"adjustedIntelligence","type":"uint256","internalType":"uint256"},{"name":"adjustedArmor","type":"uint256","internalType":"uint256"},{"name":"adjustedMaxHp","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__calculateGoldDrop","inputs":[{"name":"mobLevel","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dropAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canUse","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createAction","inputs":[{"name":"actionType","type":"uint8","internalType":"enum ActionType"},{"name":"actionStats","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"dropChance","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"dropChances","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItems","inputs":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"characterIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__endTurn","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__executeCombat","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getArmorStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_ArmorStats","type":"tuple","internalType":"struct ArmorStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"armorModifier","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentItemsCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEncounter","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_encounterData","type":"tuple","internalType":"struct CombatEncounterData","components":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"},{"name":"currentTurn","type":"uint256","internalType":"uint256"},{"name":"maxTurns","type":"uint256","internalType":"uint256"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMobId","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMobPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMulticallContract","inputs":[],"outputs":[{"name":"_multicall","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"UD__getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getSpawnCounter","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct StarterItemsData","components":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"maxDamage","type":"uint256","internalType":"uint256"},{"name":"minDamage","type":"uint256","internalType":"uint256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isItemOwner","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"participants","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidPvE","inputs":[{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isValidPvE","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawnMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD___calculateMagicAttack()":"e0cac377","UD___calculatePhysicalAttack((int256,int256,int256,int256),bytes32,bytes32,uint256,uint256)":"fa760cc5","UD__applyEquipmentBonuses(bytes32)":"54f1f2db","UD__calculateGoldDrop(uint256,uint256)":"c3505171","UD__checkRequirements(bytes32,uint256)":"bf4dbebc","UD__createAction(uint8,bytes)":"c3344bd2","UD__createItem(uint8,uint256,uint256,bytes,string)":"c2647a81","UD__createItems(uint8[],uint256[],uint256[],bytes[],string[])":"8a2d4e05","UD__createMatch(uint8,bytes32[],bytes32[])":"3e602b01","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__dropItems(uint256[],uint256[],bytes32[])":"e45cde14","UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"1f357129","UD__enterGame(bytes32)":"b968fa3a","UD__equipItems(bytes32,uint256[])":"2d9ac2be","UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"a0ba1f1e","UD__getArmorStats(uint256)":"e75aa93b","UD__getCharacterToken()":"49d8cf02","UD__getCharacterTokenId(bytes32)":"d97302d0","UD__getClass(bytes32)":"0ae6f9ab","UD__getCurrentAvailableLevel(uint256)":"d453e623","UD__getCurrentItemsCounter()":"4652f280","UD__getEncounter(bytes32)":"55faf03a","UD__getEntitiesAtPosition(uint16,uint16)":"d0f8a4f5","UD__getEntropy()":"b5c691c7","UD__getExperience(bytes32)":"a8b79e60","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getMob(bytes32)":"5ac36570","UD__getMob(uint256)":"622834d0","UD__getMobId(bytes32)":"53d64640","UD__getMobPosition(bytes32)":"8b3f8277","UD__getMonsterStats(bytes32)":"e6c22e06","UD__getMonsterStats(uint256)":"91b22373","UD__getMulticallContract()":"71ce415d","UD__getName(bytes32)":"e902af7a","UD__getNpcStats(bytes32)":"a17a6b7f","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(bytes32)":"777c2caf","UD__getOwnerAddress(bytes32)":"4f10aabc","UD__getPlayerEntityId(uint256)":"02ee03fa","UD__getPythProvider()":"e24cefd9","UD__getSpawnCounter(bytes32)":"f4e1633b","UD__getStarterItems(uint8)":"b8bfeca1","UD__getStats(bytes32)":"14b13b0e","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isAtPosition(bytes32,uint16,uint16)":"f48a3972","UD__isEquipped(bytes32,uint256)":"7273e39a","UD__isItemOwner(uint256,address)":"b3634118","UD__isParticipant(address,bytes32)":"7868d715","UD__isParticipant(address,bytes32[])":"18853912","UD__isValidCharacterId(bytes32)":"fa1becc4","UD__isValidMob(bytes32)":"bace814a","UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)":"c6d5525b","UD__issueStarterItems(bytes32)":"f9d175ed","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(bytes32,uint16,uint16)":"d1138fa1","UD__rollStats(bytes32,bytes32,uint8)":"18f14781","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(bytes32)":"7e29a6f6","UD__spawnMob(uint256,uint16,uint16)":"15bc4248","UD__unequipItem(bytes32,uint256)":"7a190324","UD__updateTokenUri(bytes32,string)":"ecd73f84","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD__calculateGoldDrop\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dropAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dropChance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"dropChances\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getMulticallContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_multicall\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0\",\"dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD___calculateMagicAttack"},{"inputs":[{"internalType":"struct PhysicalAttackStats","name":"attackStats","type":"tuple","components":[{"internalType":"int256","name":"bonusDamage","type":"int256"},{"internalType":"int256","name":"armorPenetration","type":"int256"},{"internalType":"int256","name":"attackModifierBonus","type":"int256"},{"internalType":"int256","name":"critChanceBonus","type":"int256"}]},{"internalType":"bytes32","name":"attackerId","type":"bytes32"},{"internalType":"bytes32","name":"defenderId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD___calculatePhysicalAttack","outputs":[{"internalType":"int256","name":"damage","type":"int256"},{"internalType":"bool","name":"hit","type":"bool"},{"internalType":"bool","name":"crit","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__applyEquipmentBonuses","outputs":[{"internalType":"struct AdjustedCombatStats","name":"modifiedStats","type":"tuple","components":[{"internalType":"uint256","name":"adjustedStrength","type":"uint256"},{"internalType":"uint256","name":"adjustedAgility","type":"uint256"},{"internalType":"uint256","name":"adjustedIntelligence","type":"uint256"},{"internalType":"uint256","name":"adjustedArmor","type":"uint256"},{"internalType":"uint256","name":"adjustedMaxHp","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"class","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"mobLevel","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__calculateGoldDrop","outputs":[{"internalType":"uint256","name":"dropAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"canUse","type":"bool"}]},{"inputs":[{"internalType":"enum ActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"actionStats","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"UD__createAction","outputs":[{"internalType":"bytes32","name":"actionId","type":"bytes32"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"dropChance","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"uint256[]","name":"dropChances","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes32[]","name":"characterIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItems"},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"UD__endTurn"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"UD__executeCombat"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getArmorStats","outputs":[{"internalType":"struct ArmorStats","name":"_ArmorStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint256","name":"armorModifier","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCurrentItemsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getEncounter","outputs":[{"internalType":"struct CombatEncounterData","name":"_encounterData","type":"tuple","components":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"currentTurn","type":"uint256"},{"internalType":"uint256","name":"maxTurns","type":"uint256"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobPosition","outputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getMulticallContract","outputs":[{"internalType":"address","name":"_multicall","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getSpawnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"view","type":"function","name":"UD__getStarterItems","outputs":[{"internalType":"struct StarterItemsData","name":"data","type":"tuple","components":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"maxDamage","type":"uint256"},{"internalType":"uint256","name":"minDamage","type":"uint256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isItemOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"participants","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidMob","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isValidPvE","outputs":[{"internalType":"bool","name":"_isValidPvE","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawnMob","outputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__updateTokenUri"},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf","urls":["bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0","dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"}},"version":1},"id":206} \ No newline at end of file +{"abi":[{"type":"function","name":"UD___calculateMagicAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD___calculatePhysicalAttack","inputs":[{"name":"attackStats","type":"tuple","internalType":"struct PhysicalAttackStats","components":[{"name":"bonusDamage","type":"int256","internalType":"int256"},{"name":"armorPenetration","type":"int256","internalType":"int256"},{"name":"attackModifierBonus","type":"int256","internalType":"int256"},{"name":"critChanceBonus","type":"int256","internalType":"int256"}]},{"name":"attackerId","type":"bytes32","internalType":"bytes32"},{"name":"defenderId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"damage","type":"int256","internalType":"int256"},{"name":"hit","type":"bool","internalType":"bool"},{"name":"crit","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__applyEquipmentBonuses","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"modifiedStats","type":"tuple","internalType":"struct AdjustedCombatStats","components":[{"name":"adjustedStrength","type":"uint256","internalType":"uint256"},{"name":"adjustedAgility","type":"uint256","internalType":"uint256"},{"name":"adjustedIntelligence","type":"uint256","internalType":"uint256"},{"name":"adjustedArmor","type":"uint256","internalType":"uint256"},{"name":"adjustedMaxHp","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__calculateGoldDrop","inputs":[{"name":"mobLevel","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dropAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canUse","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createAction","inputs":[{"name":"actionType","type":"uint8","internalType":"enum ActionType"},{"name":"actionStats","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"dropChance","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"dropChances","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropGold","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItem","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItems","inputs":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"characterIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__endTurn","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__executeCombat","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getArmorStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_ArmorStats","type":"tuple","internalType":"struct ArmorStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"armorModifier","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentItemsCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEncounter","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_encounterData","type":"tuple","internalType":"struct CombatEncounterData","components":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"},{"name":"currentTurn","type":"uint256","internalType":"uint256"},{"name":"maxTurns","type":"uint256","internalType":"uint256"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getLootManagerSystem","inputs":[],"outputs":[{"name":"_lootManager","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMobId","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMobPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMulticallContract","inputs":[],"outputs":[{"name":"_multicall","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"UD__getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getSpawnCounter","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct StarterItemsData","components":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"maxDamage","type":"uint256","internalType":"uint256"},{"name":"minDamage","type":"uint256","internalType":"uint256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isItemOwner","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"participants","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidPvE","inputs":[{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isValidPvE","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawnMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD___calculateMagicAttack()":"e0cac377","UD___calculatePhysicalAttack((int256,int256,int256,int256),bytes32,bytes32,uint256,uint256)":"fa760cc5","UD__applyEquipmentBonuses(bytes32)":"54f1f2db","UD__calculateGoldDrop(uint256,uint256)":"c3505171","UD__checkRequirements(bytes32,uint256)":"bf4dbebc","UD__createAction(uint8,bytes)":"c3344bd2","UD__createItem(uint8,uint256,uint256,bytes,string)":"c2647a81","UD__createItems(uint8[],uint256[],uint256[],bytes[],string[])":"8a2d4e05","UD__createMatch(uint8,bytes32[],bytes32[])":"3e602b01","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__dropGold(bytes32,uint256)":"fda0ce50","UD__dropItem(uint256,uint256,bytes32)":"88c571e1","UD__dropItems(uint256[],uint256[],bytes32[])":"e45cde14","UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"1f357129","UD__enterGame(bytes32)":"b968fa3a","UD__equipItems(bytes32,uint256[])":"2d9ac2be","UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"a0ba1f1e","UD__getArmorStats(uint256)":"e75aa93b","UD__getCharacterToken()":"49d8cf02","UD__getCharacterTokenId(bytes32)":"d97302d0","UD__getClass(bytes32)":"0ae6f9ab","UD__getCurrentAvailableLevel(uint256)":"d453e623","UD__getCurrentItemsCounter()":"4652f280","UD__getEncounter(bytes32)":"55faf03a","UD__getEntitiesAtPosition(uint16,uint16)":"d0f8a4f5","UD__getEntropy()":"b5c691c7","UD__getExperience(bytes32)":"a8b79e60","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getLootManagerSystem()":"f2cb96f2","UD__getMob(bytes32)":"5ac36570","UD__getMob(uint256)":"622834d0","UD__getMobId(bytes32)":"53d64640","UD__getMobPosition(bytes32)":"8b3f8277","UD__getMonsterStats(bytes32)":"e6c22e06","UD__getMonsterStats(uint256)":"91b22373","UD__getMulticallContract()":"71ce415d","UD__getName(bytes32)":"e902af7a","UD__getNpcStats(bytes32)":"a17a6b7f","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(bytes32)":"777c2caf","UD__getOwnerAddress(bytes32)":"4f10aabc","UD__getPlayerEntityId(uint256)":"02ee03fa","UD__getPythProvider()":"e24cefd9","UD__getSpawnCounter(bytes32)":"f4e1633b","UD__getStarterItems(uint8)":"b8bfeca1","UD__getStats(bytes32)":"14b13b0e","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isAtPosition(bytes32,uint16,uint16)":"f48a3972","UD__isEquipped(bytes32,uint256)":"7273e39a","UD__isItemOwner(uint256,address)":"b3634118","UD__isParticipant(address,bytes32)":"7868d715","UD__isParticipant(address,bytes32[])":"18853912","UD__isValidCharacterId(bytes32)":"fa1becc4","UD__isValidMob(bytes32)":"bace814a","UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)":"c6d5525b","UD__issueStarterItems(bytes32)":"f9d175ed","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(bytes32,uint16,uint16)":"d1138fa1","UD__rollStats(bytes32,bytes32,uint8)":"18f14781","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(bytes32)":"7e29a6f6","UD__spawnMob(uint256,uint16,uint16)":"15bc4248","UD__unequipItem(bytes32,uint256)":"7a190324","UD__updateTokenUri(bytes32,string)":"ecd73f84","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD__calculateGoldDrop\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dropAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dropChance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"dropChances\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UD__dropGold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__dropItem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getLootManagerSystem\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_lootManager\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getMulticallContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_multicall\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD___calculateMagicAttack"},{"inputs":[{"internalType":"struct PhysicalAttackStats","name":"attackStats","type":"tuple","components":[{"internalType":"int256","name":"bonusDamage","type":"int256"},{"internalType":"int256","name":"armorPenetration","type":"int256"},{"internalType":"int256","name":"attackModifierBonus","type":"int256"},{"internalType":"int256","name":"critChanceBonus","type":"int256"}]},{"internalType":"bytes32","name":"attackerId","type":"bytes32"},{"internalType":"bytes32","name":"defenderId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD___calculatePhysicalAttack","outputs":[{"internalType":"int256","name":"damage","type":"int256"},{"internalType":"bool","name":"hit","type":"bool"},{"internalType":"bool","name":"crit","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__applyEquipmentBonuses","outputs":[{"internalType":"struct AdjustedCombatStats","name":"modifiedStats","type":"tuple","components":[{"internalType":"uint256","name":"adjustedStrength","type":"uint256"},{"internalType":"uint256","name":"adjustedAgility","type":"uint256"},{"internalType":"uint256","name":"adjustedIntelligence","type":"uint256"},{"internalType":"uint256","name":"adjustedArmor","type":"uint256"},{"internalType":"uint256","name":"adjustedMaxHp","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"class","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"mobLevel","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__calculateGoldDrop","outputs":[{"internalType":"uint256","name":"dropAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"canUse","type":"bool"}]},{"inputs":[{"internalType":"enum ActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"actionStats","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"UD__createAction","outputs":[{"internalType":"bytes32","name":"actionId","type":"bytes32"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"dropChance","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"uint256[]","name":"dropChances","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropGold"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItem"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes32[]","name":"characterIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItems"},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"UD__endTurn"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"UD__executeCombat"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getArmorStats","outputs":[{"internalType":"struct ArmorStats","name":"_ArmorStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint256","name":"armorModifier","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCurrentItemsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getEncounter","outputs":[{"internalType":"struct CombatEncounterData","name":"_encounterData","type":"tuple","components":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"currentTurn","type":"uint256"},{"internalType":"uint256","name":"maxTurns","type":"uint256"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getLootManagerSystem","outputs":[{"internalType":"address","name":"_lootManager","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobPosition","outputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getMulticallContract","outputs":[{"internalType":"address","name":"_multicall","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getSpawnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"view","type":"function","name":"UD__getStarterItems","outputs":[{"internalType":"struct StarterItemsData","name":"data","type":"tuple","components":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"maxDamage","type":"uint256"},{"internalType":"uint256","name":"minDamage","type":"uint256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isItemOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"participants","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidMob","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isValidPvE","outputs":[{"internalType":"bool","name":"_isValidPvE","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawnMob","outputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__updateTokenUri"},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"}},"version":1},"id":206} \ No newline at end of file diff --git a/packages/contracts/out/MapSystem.sol/MapSystem.json b/packages/contracts/out/MapSystem.sol/MapSystem.json index da4caec26..d790dc1b7 100644 --- a/packages/contracts/out/MapSystem.sol/MapSystem.json +++ b/packages/contracts/out/MapSystem.sol/MapSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea26469706673582212209f970bff027fc4bfc7b70335db8c165a4d5d501c03fcb2be76db5c30d02a61da64736f6c63430008180033","sourceMap":"412:4148:217:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea26469706673582212209f970bff027fc4bfc7b70335db8c165a4d5d501c03fcb2be76db5c30d02a61da64736f6c63430008180033","sourceMap":"412:4148:217:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:229;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:229;;;689:74;;677:2;662:18;1262:113:123;543:226:229;1755:239:217;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:229;;1401:2;1386:18;1616:110:123;1267:177:229;1580:169:217;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:217:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:217:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:217;;1279:70;;;;-1:-1:-1;;;1279:70:217;;2807:2:229;1279:70:217;;;2789:21:229;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:217;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:217;;3212:2:229;1360:67:217;;;3194:21:229;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:217;3010:349:229;1360:67:217;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:217;;605:69;;;;-1:-1:-1;;;605:69:217;;3566:2:229;605:69:217;;;3548:21:229;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:217;3364:399:229;605:69:217;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:217;;3970:2:229;685:62:217;;;3952:21:229;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:217;3768:345:229;685:62:217;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:217;;4320:2:229;885:37:217;;;4302:21:229;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:217;4118:339:229;885:37:217;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:217;;4664:2:229;932:38:217;;;4646:21:229;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:217;4462:339:229;932:38:217;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:217;;5008:2:229;980:91:217;;;4990:21:229;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:217;4806:354:229;980:91:217;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:191:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:191;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:182:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:182;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:182:o;4071:290:179:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;2592:291:193:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:193;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:193:o;5796:354:191:-;7947:22;;;16149:3:229;16145:16;;;16054:66;16141:25;;;7947:22:191;;;;16129:38:229;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:191;;;;;;;;;6023:1;16238:11:229;;;6009:16:191;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:191;;-1:-1:-1;;6023:1:191;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:191;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:193:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:193;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:229;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:193;;;;-1:-1:-1;;4107:27:193;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:182:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:182;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;9759:28:182;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:185:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:217:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:217;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:217:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:217;;7009:2:229;4393:63:217;;;6991:21:229;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:217;6807:355:229;4393:63:217;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:217;;7369:2:229;2296:80:217;;;7351:21:229;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:217;7167:403:229;2296:80:217;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:229;;1401:2;1386:18;;1267:177;2515:42:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:217;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:229;2594:9:217;;:20;;1386:18:229;;2594:38:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:217;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:229;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:217;;;;-1:-1:-1;;2754:148:217;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:217;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:191:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:191;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:191;-1:-1:-1;;;;7036:160:191:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:182:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:182;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;12402:28:182;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:182;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:217:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:188:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:188;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:229;18911:18;;3713:52:107;18794:248:229;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:217:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:217;;3609:106;-1:-1:-1;3609:106:217:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:229;25536:15;;;45340:92:45;;;25518:34:229;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:229;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:229;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:229;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:229;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:229;;51494:30:45;27964:279:229;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:229;;;1386:18;;7664:67:24;1267:177:229;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:229;30142:79;;2092:30:124;;;30130:92:229;2092:30:124;;30238:12:229;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:193;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:193;6914:97;14:332:229;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:229;;1710:439;-1:-1:-1;;;;;1710:439:229:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:229;;2420:180;-1:-1:-1;2420:180:229:o;5165:184::-;-1:-1:-1;;;5214:1:229;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:229;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:229;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:229;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:229;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:229;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:229;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:229;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:229;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:229;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:229;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:229:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:229;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:229:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:229:o;10716:184::-;-1:-1:-1;;;10765:1:229;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:229:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:229;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:229;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:229;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:229;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:229:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:229;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:229:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:229;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:229:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:229;;15702:184;-1:-1:-1;15702:184:229:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:229:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:229:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:229;;21043:640;-1:-1:-1;;;;;;;21043:640:229:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:229:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:229:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:229:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:229;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:229:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:229:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1\",\"dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0\",\"dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd\",\"dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xe58029e6eb9d7da3593b49b5421a2796ce6934aa1bfedaf01a03ad93de241368","urls":["bzz-raw://226fbacfebbe0a92a4c4bdab657011838ec35418ba8ef39053a4aa7ff2e08bd1","dweb:/ipfs/QmRLnNuC243ihZvtSnyLvLWEUCxGJ41yCCZFsN3DTD8W2F"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0x1bba320942f8309771970dd2809ec647eaf5177b117b1326c7fc062533db75cf","urls":["bzz-raw://bc119956313a7357d7da7c3bf74ab428bd5e1881a29510971afdfeeb2fa5d9d0","dweb:/ipfs/QmXzUrMVpMpzWgMLhQvoUERGwFUZf21R2fPmsq5WfoLfys"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7e6c04e8b9ee48e1db2680cd01fc1d69d53e0e7d8f0982e360e43bf514e93591","urls":["bzz-raw://b3d8f6000ef73bfced40e424cd5312f88e8dfa4ff92d99d5aa34f4b8a2c3dfcd","dweb:/ipfs/QmUGb1aDvcDdzQfze9fKj534o6KyNhqbdzZyJR4zKCGkjN"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":217} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea26469706673582212203d11dc1ab477316dcb4a6bf833f258f95be32aa3802e105bd4af41051131db5f64736f6c63430008180033","sourceMap":"412:4148:216:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea26469706673582212203d11dc1ab477316dcb4a6bf833f258f95be32aa3802e105bd4af41051131db5f64736f6c63430008180033","sourceMap":"412:4148:216:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:228;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:228;;;689:74;;677:2;662:18;1262:113:123;543:226:228;1755:239:216;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:228;;1401:2;1386:18;1616:110:123;1267:177:228;1580:169:216;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:216:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:216:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:216;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:216;;1279:70;;;;-1:-1:-1;;;1279:70:216;;2807:2:228;1279:70:216;;;2789:21:228;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:216;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:216;;3212:2:228;1360:67:216;;;3194:21:228;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:216;3010:349:228;1360:67:216;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:216;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:216;;605:69;;;;-1:-1:-1;;;605:69:216;;3566:2:228;605:69:216;;;3548:21:228;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:216;3364:399:228;605:69:216;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:216;;3970:2:228;685:62:216;;;3952:21:228;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:216;3768:345:228;685:62:216;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:216;;4320:2:228;885:37:216;;;4302:21:228;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:216;4118:339:228;885:37:216;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:216;;4664:2:228;932:38:216;;;4646:21:228;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:216;4462:339:228;932:38:216;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:216;;5008:2:228;980:91:216;;;4990:21:228;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:216;4806:354:228;980:91:216;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:191:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:191;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:182:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:182;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:182:o;4071:290:179:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;2592:291:193:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:193;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:193:o;5796:354:191:-;7947:22;;;16149:3:228;16145:16;;;16054:66;16141:25;;;7947:22:191;;;;16129:38:228;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:191;;;;;;;;;6023:1;16238:11:228;;;6009:16:191;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:191;;-1:-1:-1;;6023:1:191;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:191;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:193:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:193;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:228;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:193;;;;-1:-1:-1;;4107:27:193;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:182:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:182;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;9759:28:182;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:185:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:216:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:216;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:216:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:216;;7009:2:228;4393:63:216;;;6991:21:228;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:216;6807:355:228;4393:63:216;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:216;;7369:2:228;2296:80:216;;;7351:21:228;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:216;7167:403:228;2296:80:216;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:228;;1401:2;1386:18;;1267:177;2515:42:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:216;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:228;2594:9:216;;:20;;1386:18:228;;2594:38:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:216;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:228;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:216;;;;-1:-1:-1;;2754:148:216;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:216;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:191:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:191;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:191;-1:-1:-1;;;;7036:160:191:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:182:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:182;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;12402:28:182;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:182;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:216:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:188:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:188;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:228;18911:18;;3713:52:107;18794:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:216:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:216;;3609:106;-1:-1:-1;3609:106:216:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:228;25536:15;;;45340:92:45;;;25518:34:228;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:228;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:228;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:228;;51494:30:45;27964:279:228;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:228;;;1386:18;;7664:67:24;1267:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:228;30142:79;;2092:30:124;;;30130:92:228;2092:30:124;;30238:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:193;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:193;6914:97;14:332:228;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:228;;1710:439;-1:-1:-1;;;;;1710:439:228:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:228;;2420:180;-1:-1:-1;2420:180:228:o;5165:184::-;-1:-1:-1;;;5214:1:228;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:228;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:228;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:228;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:228;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:228;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:228;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:228;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:228;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:228;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:228;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:228:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:228;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:228:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:228:o;10716:184::-;-1:-1:-1;;;10765:1:228;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:228:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:228;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:228;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:228;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:228;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:228:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:228;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:228:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:228;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:228:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:228;;15702:184;-1:-1:-1;15702:184:228:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:228:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:228:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:228;;21043:640;-1:-1:-1;;;;;;;21043:640:228:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:228:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:228:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:228:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:228;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:228:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:228:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":216} \ No newline at end of file diff --git a/packages/contracts/script/PostDeploy.s.sol b/packages/contracts/script/PostDeploy.s.sol index 1c10fa100..1d9d3d94b 100644 --- a/packages/contracts/script/PostDeploy.s.sol +++ b/packages/contracts/script/PostDeploy.s.sol @@ -26,6 +26,7 @@ import { ITEMS_NAMESPACE, TOKEN_URI } from "../constants.sol"; +import {_lootManagerSystemId} from "../src/utils.sol"; import {NoTransferHook} from "../src/NoTransferHook.sol"; import {BEFORE_CALL_SYSTEM} from "@latticexyz/world/src/systemHookTypes.sol"; import {Classes, ItemType, MobType} from "@codegen/common.sol"; @@ -67,6 +68,7 @@ struct ResourceIds { ResourceId erc1155NamespaceId; ResourceId itemsSystemId; ResourceId combatSystemId; + ResourceId lootManagerSystemId; } contract PostDeploy is Script { @@ -147,18 +149,19 @@ contract PostDeploy is Script { resourceIds.erc1155NamespaceId = WorldResourceIdLib.encodeNamespace(ITEMS_NAMESPACE); resourceIds.itemsSystemId = WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: "UD", name: "ItemsSystem"}); + resourceIds.lootManagerSystemId = _lootManagerSystemId("UD"); } address characterSystemAddress = Systems.getSystem(resourceIds.characterSystemId); - System goldSystemContract = new ERC20System(); world.registerSystem(resourceIds.erc20SystemId, goldSystemContract, true); IWorld(worldAddress).grantAccess(resourceIds.erc20NamespaceId, worldAddress); + IWorld(worldAddress).grantAccess(resourceIds.lootManagerSystemId, characterSystemAddress); IWorld(worldAddress).registerFunctionSelector(resourceIds.erc20SystemId, "mint(address,uint256)"); - world.transferOwnership(resourceIds.erc20NamespaceId, address(characterSystemAddress)); + world.transferOwnership(resourceIds.erc20NamespaceId, Systems.getSystem(resourceIds.lootManagerSystemId)); System systemContract = new ERC721System(); world.registerSystem(resourceIds.erc721SystemId, systemContract, true); diff --git a/packages/contracts/src/codegen/world/IItemsSystem.sol b/packages/contracts/src/codegen/world/IItemsSystem.sol index ae9e4e705..571a85b18 100644 --- a/packages/contracts/src/codegen/world/IItemsSystem.sol +++ b/packages/contracts/src/codegen/world/IItemsSystem.sol @@ -30,12 +30,8 @@ interface IItemsSystem { function UD__getTotalSupply(uint256 tokenId) external view returns (uint256 _supply); - function UD__issueStarterItems(bytes32 characterId) external; - function UD__getStarterItems(Classes class) external view returns (StarterItemsData memory data); - function UD__dropItems(uint256[] memory itemIds, uint256[] memory amounts, bytes32[] memory characterIds) external; - function UD__setTokenUri(uint256 tokenId, string memory tokenUri) external; function UD__getItemType(uint256 itemId) external view returns (ItemType); diff --git a/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol b/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol index ed054871f..141db9fed 100644 --- a/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol +++ b/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol @@ -20,4 +20,6 @@ interface IUltimateDominionConfigSystem { function UD__getItemsContract() external view returns (address _erc1155); function UD__getMulticallContract() external view returns (address _multicall); + + function UD__getLootManagerSystem() external view returns (address _lootManager); } diff --git a/packages/contracts/src/systems/CharacterSystem.sol b/packages/contracts/src/systems/CharacterSystem.sol index 7a0b23388..07c5e74f4 100644 --- a/packages/contracts/src/systems/CharacterSystem.sol +++ b/packages/contracts/src/systems/CharacterSystem.sol @@ -22,6 +22,7 @@ import {TokenURI} from "@latticexyz/world-modules/src/modules/erc721-puppet/tabl import {_tokenUriTableId} from "@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol"; import {IERC20System} from "@latticexyz/world-modules/src/interfaces/IERC20System.sol"; import {IItemsSystem} from "@codegen/world/IItemsSystem.sol"; +import {ILootManagerSystem} from "@codegen/world/ILootManagerSystem.sol"; import {Classes} from "@codegen/common.sol"; import {IERC1155System} from "@erc1155/IERC1155System.sol"; import {ResourceId, WorldResourceIdLib, WorldResourceIdInstance} from "@latticexyz/world/src/WorldResourceId.sol"; @@ -114,11 +115,14 @@ contract CharacterSystem is System { function enterGame(bytes32 characterId) public { require(_isOwner(characterId), "not your character"); require(!Characters.getLocked(characterId), "you have entered the game"); - Stats.setLevel(characterId, 1); - issueGold(characterId, 5 ether); + StatsData memory tempStats = Stats.get(characterId); + tempStats.level = 1; + tempStats.currentHp = int256(tempStats.baseHitPoints); + Stats.set(characterId, tempStats); + IWorld(_world()).UD__dropGold(characterId, 5 ether); // issue starterWeapon IWorld(_world()).UD__issueStarterItems(characterId); - + // SystemSwitch.call(abi.encodeCall(ILootManagerSystem.UD__issueStarterItems, (characterId))); Characters.setLocked(characterId, true); } @@ -166,10 +170,6 @@ contract CharacterSystem is System { return Characters.getOwner(characterId); } - function issueGold(bytes32 characterId, uint256 amount) internal { - _gold().mint(getOwner(characterId), amount); - } - function getExperience(bytes32 characterId) public view returns (uint256) { return Stats.getExperience(characterId); } diff --git a/packages/contracts/src/systems/CombatSystem.sol b/packages/contracts/src/systems/CombatSystem.sol index c68e90fba..b86212d77 100644 --- a/packages/contracts/src/systems/CombatSystem.sol +++ b/packages/contracts/src/systems/CombatSystem.sol @@ -249,11 +249,11 @@ contract CombatSystem is System { uint256 randomNumber ) public returns (int256 damage, bool hit, bool crit) { // get attacker - AdjustedCombatStats memory attacker = world().UD__applyEquipmentBonuses(attackerId); + AdjustedCombatStats memory attacker = IWorld(_world()).UD__applyEquipmentBonuses(attackerId); //get defender - AdjustedCombatStats memory defender = world().UD__applyEquipmentBonuses(defenderId); + AdjustedCombatStats memory defender = IWorld(_world()).UD__applyEquipmentBonuses(defenderId); // get weapon stats - WeaponStats memory weapon = world().UD__getWeaponStats(weaponId); + WeaponStats memory weapon = IWorld(_world()).UD__getWeaponStats(weaponId); if (defender.currentHp > 0) { uint64[] memory rnChunks = LibChunks.get4Chunks(randomNumber); @@ -325,22 +325,47 @@ contract CombatSystem is System { returns (uint256[] memory itemIds, uint256[] memory amounts, uint256 goldAmount) { CombatEncounterData memory encounterData = CombatEncounter.get(encounterId); + // check dead attackers and defenders uint256 cumulativeAttackerLevels; + uint256 livingAttackers; + bytes32 entityIdTemp; + StatsData memory statsTemp; for (uint256 i; i < encounterData.attackers.length; i++) { - cumulativeAttackerLevels += Stats.getLevel(encounterData.attackers[i]); + statsTemp = Stats.get(encounterData.attackers[i]); + cumulativeAttackerLevels += statsTemp.level; + if (statsTemp.currentHp > 0) { + livingAttackers++; + } } //if cumulative attacker levels is >= 5 levels above the monster level no gold reward. // for this calculation level is calculated from exp not from actual leveled levels + uint256 goldDrop; + uint256 expDrop; for (uint256 i; i < encounterData.defenders.length; i++) { - uint256 mobLevel = Stats.getLevel(encounterData.defenders[i]); - goldDrop += calculateGoldDrop(mobLevel, randomNumber); + statsTemp = Stats.get(encounterData.defenders[i]); + if (statsTemp.currentHp <= int256(0)) { + expDrop += statsTemp.experience; + goldDrop += calculateGoldDrop(statsTemp.level, randomNumber); + } } // drop gold reward calculated from the level of mob to player journey wallet (can mint tokens when he returns to 0,0). - // if dead player, drop transfer 50% of un-banked gold to world contract + // distribute loot + + for (uint256 i; i < encounterData.attackers.length; i++) { + entityIdTemp = encounterData.attackers[i]; + if (IWorld(_world()).UD__isValidCharacterId(entityIdTemp)) { + statsTemp = Stats.get(entityIdTemp); + if (statsTemp.currentHp > int256(0) && goldDrop > 0) { + statsTemp.experience += expDrop / livingAttackers; + IWorld(_world()).UD__dropGold(entityIdTemp, (goldDrop / livingAttackers)); + Stats.set(entityIdTemp, statsTemp); + } + } + } } function calculateGoldDrop(uint256 mobLevel, uint256 randomNumber) public returns (uint256 dropAmount) { @@ -348,8 +373,4 @@ contract CombatSystem is System { dropAmount = randomNumber % (BASE_GOLD_DROP * mobLevel); } - - function world() internal returns (IWorld world) { - return IWorld(_world()); - } } diff --git a/packages/contracts/src/systems/ItemsSystem.sol b/packages/contracts/src/systems/ItemsSystem.sol index 9bb3deb13..6227e22fb 100644 --- a/packages/contracts/src/systems/ItemsSystem.sol +++ b/packages/contracts/src/systems/ItemsSystem.sol @@ -23,8 +23,8 @@ import { import {ItemType, Classes} from "@codegen/common.sol"; import {AccessControlLib} from "@latticexyz/world-modules/src/utils/AccessControlLib.sol"; import {SystemRegistry} from "@latticexyz/world/src/codegen/tables/SystemRegistry.sol"; -import {_erc1155SystemId, _characterSystemId, _requireOwner, _requireAccess} from "../utils.sol"; -import {ITEMS_NAMESPACE} from "../../constants.sol"; +import {_erc1155SystemId, _characterSystemId, _requireOwner, _requireAccess, _lootManagerSystemId} from "../utils.sol"; +import {ITEMS_NAMESPACE, WORLD_NAMESPACE} from "../../constants.sol"; import {WeaponStats, ArmorStats} from "@interfaces/Structs.sol"; import {TotalSupply} from "@erc1155/tables/TotalSupply.sol"; import {Owners} from "@erc1155/tables/Owners.sol"; @@ -59,7 +59,13 @@ contract ItemsSystem is System { // mint supply to this contract IWorld(_world()).call( _erc1155SystemId(ITEMS_NAMESPACE), - abi.encodeWithSignature("mint(address,uint256,uint256,bytes)", address(this), itemId, supply, "") + abi.encodeWithSignature( + "mint(address,uint256,uint256,bytes)", + Systems.getSystem(_lootManagerSystemId(WORLD_NAMESPACE)), + itemId, + supply, + "" + ) ); // see if you can guess what this is doing... setTokenUri(itemId, itemMetadataURI); @@ -92,29 +98,10 @@ contract ItemsSystem is System { _supply = TotalSupply.getTotalSupply(_totalSupplyTableId(ITEMS_NAMESPACE), tokenId); } - function issueStarterItems(bytes32 characterId) public { - require(_msgSender() == Systems.getSystem(_characterSystemId("UD")), "ITEMS: Invalid System"); - StarterItemsData memory starterItems = getStarterItems(Stats.getClass(characterId)); - - address owner = IWorld(_world()).UD__getOwner(characterId); - - for (uint256 i; i < starterItems.itemIds.length; i++) { - _items().transferFrom(address(this), owner, starterItems.itemIds[i], starterItems.amounts[i]); - } - } - function getStarterItems(Classes class) public view returns (StarterItemsData memory data) { return StarterItems.get(class); } - function dropItems(uint256[] memory itemIds, uint256[] memory amounts, bytes32[] memory characterIds) public { - _requireAccess(address(this), _msgSender()); - for (uint256 i; i < itemIds.length; i++) { - address to = IWorld(_world()).UD__getOwner(characterIds[i]); - _items().transferFrom(address(this), to, itemIds[i], amounts[i]); - } - } - function setTokenUri(uint256 tokenId, string memory tokenUri) public { _requireOwner(address(this), _msgSender()); ERC1155URIStorage.setUri(_erc1155URIStorageTableId(ITEMS_NAMESPACE), tokenId, tokenUri); diff --git a/packages/contracts/src/systems/UltimateDominionConfigSystem.sol b/packages/contracts/src/systems/UltimateDominionConfigSystem.sol index 582eb7ddc..7456ea3ca 100644 --- a/packages/contracts/src/systems/UltimateDominionConfigSystem.sol +++ b/packages/contracts/src/systems/UltimateDominionConfigSystem.sol @@ -2,7 +2,10 @@ pragma solidity >=0.8.24; import {System} from "@latticexyz/world/src/System.sol"; +import {Systems} from "@latticexyz/world/src/codegen/tables/Systems.sol"; import {UltimateDominionConfig} from "../codegen/index.sol"; +import {_lootManagerSystemId} from "../utils.sol"; +import {WORLD_NAMESPACE} from "../../constants.sol"; contract UltimateDominionConfigSystem is System { function getCharacterToken() public view returns (address _characterToken) { @@ -28,4 +31,8 @@ contract UltimateDominionConfigSystem is System { function getMulticallContract() public view returns (address _multicall) { _multicall = UltimateDominionConfig.getMulticall(); } + + function getLootManagerSystem() public view returns (address _lootManager) { + _lootManager = Systems.getSystem(_lootManagerSystemId(WORLD_NAMESPACE)); + } } diff --git a/packages/contracts/src/utils.sol b/packages/contracts/src/utils.sol index 6c7360670..054698617 100644 --- a/packages/contracts/src/utils.sol +++ b/packages/contracts/src/utils.sol @@ -15,6 +15,7 @@ bytes16 constant CHARACTER_SYSTEM_NAME = "CharacterSystem"; bytes16 constant ITEMS_SYSTEM_NAME = "ItemsSystem"; bytes16 constant MOB_SYSTEM_NAME = "MobSystem"; bytes16 constant MAP_SYSTEM_NAME = "MapSystem"; +bytes16 constant LOOTMANAGER_SYSTEM_NAME = "LootManagerSyste"; function _erc20SystemId(bytes14 namespace) pure returns (ResourceId) { return WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: namespace, name: ERC20_SYSTEM_NAME}); @@ -44,10 +45,14 @@ function _mapSystemId(bytes14 namespace) pure returns (ResourceId) { return WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: namespace, name: MAP_SYSTEM_NAME}); } -function _requireOwner(address callingSystem, address sender) view { - AccessControlLib.requireOwner(SystemRegistry.get(callingSystem), sender); +function _lootManagerSystemId(bytes14 namespace) pure returns (ResourceId) { + return WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: namespace, name: LOOTMANAGER_SYSTEM_NAME}); } -function _requireAccess(address callingSystem, address sender) view { - AccessControlLib.requireAccess(SystemRegistry.get(callingSystem), sender); +function _requireOwner(address requiredAddress, address sender) view { + AccessControlLib.requireOwner(SystemRegistry.get(requiredAddress), sender); +} + +function _requireAccess(address requiredAddress, address sender) view { + AccessControlLib.requireAccess(SystemRegistry.get(requiredAddress), sender); } diff --git a/packages/contracts/test/CombatSystem.t.sol b/packages/contracts/test/CombatSystem.t.sol index 16e1c02f5..ee78ed9bd 100644 --- a/packages/contracts/test/CombatSystem.t.sol +++ b/packages/contracts/test/CombatSystem.t.sol @@ -66,7 +66,9 @@ contract Test_CombatSystem is SetUp, GasReporter { world.UD__createMatch(EncounterType.PvE, attackers, defenders); } - function test_EndTurn() public { + function test_EndTurn_EndsMatch() public { + StatsData memory startingStats = Stats.get(bobCharacterId); + uint256 startingGold = goldToken.balanceOf(bob); vm.prank(bob); bytes32 matchId = world.UD__createMatch(EncounterType.PvE, attackers, defenders); Action[] memory actions = new Action[](1); @@ -76,7 +78,16 @@ contract Test_CombatSystem is SetUp, GasReporter { vm.prank(bob); world.UD__endTurn{value: fees}(matchId, bobCharacterId, actions); - assertNotEq(Stats.get(entityId).currentHp, int256(Stats.get(entityId).baseHitPoints)); + while (world.UD__getEncounter(matchId).end == 0) { + vm.prank(bob); + world.UD__endTurn{value: fees}(matchId, bobCharacterId, actions); + } + StatsData memory endingStats = Stats.get(bobCharacterId); + uint256 endingGold = goldToken.balanceOf(bob); + + assertNotEq(startingStats.currentHp, int256(Stats.get(entityId).baseHitPoints)); + assertGt(endingStats.experience, startingStats.experience); + assertGt(endingGold, startingGold); } function test_EndTurn_Revert_NonCombatant() public { @@ -92,6 +103,6 @@ contract Test_CombatSystem is SetUp, GasReporter { function test_CalculateGoldDrop() public { uint256 goldDrop = world.UD__calculateGoldDrop(1, uint256(keccak256("thingy"))); - console2.log(goldDrop); + assertGt(goldDrop, 0); } } diff --git a/packages/contracts/test/SetUp.sol b/packages/contracts/test/SetUp.sol index c153625cc..e759aba12 100644 --- a/packages/contracts/test/SetUp.sol +++ b/packages/contracts/test/SetUp.sol @@ -14,7 +14,7 @@ import {IERC20Mintable} from "@latticexyz/world-modules/src/modules/erc20-puppet import {IERC721Mintable} from "@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol"; import {Characters, CharactersData, UltimateDominionConfig} from "@codegen/index.sol"; import {Classes, MobType, ItemType, ActionType} from "@codegen/common.sol"; -import {_itemsSystemId} from "../src/utils.sol"; +import {_itemsSystemId, _lootManagerSystemId} from "../src/utils.sol"; import {WeaponStats, MonsterStats, ArmorStats, PhysicalAttackStats} from "@interfaces/Structs.sol"; import {ResourceId, WorldResourceIdLib, WorldResourceIdInstance} from "@latticexyz/world/src/WorldResourceId.sol"; import {RESOURCE_NAMESPACE} from "@latticexyz/world/src/worldResourceTypes.sol"; @@ -72,7 +72,6 @@ contract SetUp is Test { PhysicalAttackStats memory basicAttack = PhysicalAttackStats({bonusDamage: 0, armorPenetration: 0, attackModifierBonus: 0, critChanceBonus: 0}); - basicAttackId = world.UD__createAction(ActionType.PhysicalAttack, abi.encode(basicAttack)); vm.label(alice, "alice"); @@ -82,8 +81,7 @@ contract SetUp is Test { newArmorId = world.UD__createItem(ItemType.Armor, 10 ether, 100000000, abi.encode(newArmor), "setup_armor_uri"); - world.grantAccess(_itemsSystemId("UD"), address(this)); - + world.grantAccess(_lootManagerSystemId("UD"), address(this)); vm.stopPrank(); vm.prank(alice); diff --git a/packages/contracts/test/mocks/MockEntropy.sol b/packages/contracts/test/mocks/MockEntropy.sol index fe91a4ebb..1146e637b 100644 --- a/packages/contracts/test/mocks/MockEntropy.sol +++ b/packages/contracts/test/mocks/MockEntropy.sol @@ -8,6 +8,7 @@ import "forge-std/console2.sol"; contract MockEntropy is IEntropy { uint128 mockFee = 100000; + uint256 timesCalled; function register( uint128 feeInWei, @@ -36,8 +37,9 @@ contract MockEntropy is IEntropy { ) external payable returns (uint64 assignedSequenceNumber) { // require(msg.value == mockFee, 'more fees please'); assignedSequenceNumber = uint64(1234567); - bytes32 randomNumber = keccak256(abi.encode(block.number)); + bytes32 randomNumber = keccak256(abi.encode(block.number + timesCalled)); IEntropyConsumer(msg.sender)._entropyCallback(assignedSequenceNumber, address(1), randomNumber); + timesCalled++; return assignedSequenceNumber; } diff --git a/packages/contracts/worlds.json b/packages/contracts/worlds.json index 82156af55..537af92d0 100644 --- a/packages/contracts/worlds.json +++ b/packages/contracts/worlds.json @@ -1,6 +1,6 @@ { "31337": { - "address": "0x566f79ddacda6c02e2e6b4bbaa5ee843961b76c2" + "address": "0xd5274fd8e66408599e437619e13621aaf79e4a1a" }, "84532": { "address": "0x304d17a51415f9ce2a1c3d5213a10c58098b1d44", From f6acb0750f57c7d360b5801bd7cc42563449a491 Mon Sep 17 00:00:00 2001 From: MrDeadCe11 Date: Sun, 14 Jul 2024 20:28:25 -0500 Subject: [PATCH 4/8] fixed item un-equipping --- .../CharacterSystem.abi.json | 24 +++++++ .../CharacterSystem.abi.json.d.ts | 24 +++++++ .../CharacterSystem.sol/CharacterSystem.json | 2 +- .../contracts/out/IWorld.sol/IWorld.abi.json | 65 +++++++++++++++++++ .../out/IWorld.sol/IWorld.abi.json.d.ts | 65 +++++++++++++++++++ packages/contracts/out/IWorld.sol/IWorld.json | 2 +- .../out/MapSystem.sol/MapSystem.json | 2 +- .../src/codegen/world/IActionSystem.sol | 4 ++ .../src/codegen/world/ICharacterSystem.sol | 2 + packages/contracts/src/interfaces/Structs.sol | 1 + .../contracts/src/systems/ActionSystem.sol | 10 ++- .../contracts/src/systems/CharacterSystem.sol | 7 +- .../contracts/src/systems/EquipmentSystem.sol | 29 ++++++--- packages/contracts/test/SetUp.sol | 9 ++- packages/contracts/worlds.json | 2 +- 15 files changed, 229 insertions(+), 19 deletions(-) diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json index 240197529..96cadeadc 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json @@ -283,6 +283,30 @@ ], "stateMutability": "view" }, + { + "type": "function", + "name": "isValidOwner", + "inputs": [ + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "mintCharacter", diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts index 02df23f8f..79e4faeef 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.abi.json.d.ts @@ -283,6 +283,30 @@ declare const abi: [ ], "stateMutability": "view" }, + { + "type": "function", + "name": "isValidOwner", + "inputs": [ + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "mintCharacter", diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json index 89006bb05..101bc3284 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061484c806100206000396000f3fe6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc57806323801570116100e1578063238015701461022b57806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd5780631ecb393f1461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e610148366004613d64565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b610186366004613d7d565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b6366004613d64565b61043f565b6040516101629190613df6565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613f31565b61045f565b604051908152602001610162565b34801561021757600080fd5b506101fd610226366004613d64565b6106c1565b34801561023757600080fd5b5061024b610246366004613d64565b61073f565b6040516101629190613f8a565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b366004613d64565b61074a565b34801561029c57600080fd5b5061018b6102ab366004613d64565b610755565b6102c36102be366004613f9d565b610881565b005b3480156102d157600080fd5b506101fd6102e0366004613d64565b6109f9565b3480156102f157600080fd5b506102c3610300366004613fda565b610a8e565b34801561031157600080fd5b506102c3610320366004613d64565b610aff565b34801561033157600080fd5b5061014e610340366004613d64565b610ccf565b34801561035157600080fd5b5061014e610cda565b34801561036657600080fd5b506101fd610375366004613d64565b610ce4565b34801561038657600080fd5b506101fd610395366004613d64565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610447613d0e565b61043982610cef565b600061045a610da1565b905090565b60008061046a610dd3565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610cda565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610e06565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401614071565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261062491908101906140cf565b5061062e816109f9565b915061063a8286610e53565b6106448282610f22565b61064d84610fa1565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001611046565b6106af82856110ff565b6106b9818461117e565b509392505050565b60006106cd60136111b1565b82106106db57506014919050565b60005b601481101561073957826106f1826111b1565b1115801561071057508261070e61070983600161411a565b6111b1565b115b156107275761072081600161411a565b9150610739565b806107318161412d565b9150506106de565b50919050565b60006104398261122d565b6000610439826112d7565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d611369565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190614147565b60015b15610862576107f0611369565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190614147565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a82611373565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611405565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e83836114c1565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401614164565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526115aa565b5050505050565b600080610a04611369565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190614147565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611405565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff83168261117e565b5050565b610b0881611405565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d81611373565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b6000610bb582610cef565b600160e0820152608081015160a08201529050610bd28282611658565b610bda610cda565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b50505050610c65610cda565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610c9291815260200190565b600060405180830381600087803b158015610cac57600080fd5b505af1158015610cc0573d6000803e3d6000fd5b50505050610afb826001611709565b60006104398261178d565b600061045a61182a565b600061043982611834565b610cf7613d0e565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610d2d57610d2d61418c565b602090810291909101015260008080610d867f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006118c6565b925092509250610d97838383611996565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610dd05750335b90565b600080610dde611a0e565b90506000610ded826000611a76565b610df890600161411a565b905061043982600083611b27565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611bf7565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e8957610e8961418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610ee8919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611c6f565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f5857610f5861418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610ee891815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610fda57610fda61418c565b602090810291909101015260006110327f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611d24565b905061103e8160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061107c5761107c61418c565b602002602001018181525050610f1d7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016110ca91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611c6f565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106111355761113561418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610ee891815260200190565b610afb6111aa7f4368617261637465727300000000000000000000000000000000000000000000611de1565b8383611e2e565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106111ed576111ed61418c565b6020908102919091010152600061103e7f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611d24565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106112665761126661418c565b602090810291909101015260006112bf7f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611d24565b905060f881901c600281111561103e5761103e613dbf565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106113105761131061418c565b6020908102919091010152600061103e7f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611d24565b600061045a611a0e565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106113ac576113ac61418c565b602090810291909101015260006110327f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611d24565b600061140f611369565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561147c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a09190614147565b6001600160a01b03166114b1610450565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106114f7576114f761418c565b6020908102919091010152610f1d7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561153a5761153a613dbf565b604051602001611575919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611c6f565b60606000806115c06115bb856141a2565b611e80565b91509150816000801b03611626576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168217905261103e8285611f50565b600061168a826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161202b565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106116c9576116c961418c565b60209081029190910101526117017f746255440000000000000000000000005374617473000000000000000000000082868686612069565b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061173f5761173f61418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610ee891151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106117c6576117c661418c565b6020908102919091010152600061181f7f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611d24565b60601c949350505050565b600061045a6120df565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061186d5761186d61418c565b6020908102919091010152600061103e7f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611d24565b60606000606060006118d66120df565b9050306001600160a01b038216036118ff576118f387878761211e565b9350935093505061198d565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611948908a908a908a9060040161422e565b600060405180830381865afa158015611965573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118f39190810190614257565b93509350939050565b61199e613d0e565b6119a784612226565b60e0890181905260c0890182905260a0890183905260808901849052606089018590528860208101604082018860028111156119e5576119e5613dbf565b60028111156119f6576119f6613dbf565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611a6c7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611d24565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611abb57611abb61418c565b6020026020010181815250508260001b81600181518110611ade57611ade61418c565b60209081029190910101526000611b1e7f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611d24565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611b6857611b6861418c565b6020026020010181815250508260001b81600181518110611b8b57611b8b61418c565b602002602001018181525050611bf17f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611bd491815260200190565b60408051601f19818403018152919052630100080160dd1b611c6f565b50505050565b6000611c056070601061411a565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611c796120df565b9050306001600160a01b03821603611c9d57611c988686868686612294565b611701565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611cea90899089908990899089906004016142ba565b600060405180830381600087803b158015611d0457600080fd5b505af1158015611d18573d6000803e3d6000fd5b50505050505050505050565b600080611d2f6120df565b9050306001600160a01b03821603611d5557611d4d868686866122a9565b91505061103e565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611da0908990899089908990600401614301565b602060405180830381865afa158015611dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4d9190614330565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611bf7565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611e6757611e6761418c565b602002602001018181525050611bf184826000856122d6565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611ed957611ed961418c565b602090810291909101015260008080611f327f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006118c6565b925092509250611f43838383612387565b9550955050505050915091565b60606000611f5c61182a565b90506001600160a01b0381163003611f9d576000611f84611f7b610da1565b6000878761239f565b9350905080611f9657611f96836124da565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611fe49087908790600401614071565b6000604051808303816000875af1158015612003573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261103e91908101906140cf565b6060888888888888888860405160200161204c989796959493929190614349565b604051602081830303815290604052905098975050505050505050565b60006120736120df565b9050306001600160a01b0382160361209257611c9886868686866124e2565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611cea908990899089908990899060040161438e565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680612119573391505090565b919050565b606060006060600061212f856124f8565b905061213c87878361251b565b9350600061214986612554565b9050801561221b5761215b8888612591565b935066ffffffffffffff841667ffffffffffffffff81111561217f5761217f613e6c565b6040519080825280601f01601f1916602001820160405280156121a9576020820181803683370190505b5092506020830160005b828160ff1610156122185760006121cb8b8b846125a4565b905060006121e8888460ff166028026038011c64ffffffffff1690565b90506121f78260008387612624565b612201818561411a565b935050508080612210906143df565b9150506121b3565b50505b505093509350939050565b600080600080600080600080612240896000016020015190565b60408a015160608b0151919950975060f81c600281111561226357612263613dbf565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f285856122a384876126f0565b85612721565b6000611b1e6122b886866129c5565b60ff858116601b0360080285901c166122d185876126f0565b612a1b565b60006122e06120df565b9050306001600160a01b03821603612303576122fe85858585612a6c565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061234e9088908890889088906004016143fe565b600060405180830381600087803b15801561236857600080fd5b505af115801561237c573d6000803e3d6000fd5b505050505050505050565b60008061239385612aa7565b90969095509350505050565b600060606000806123af86612abc565b90925090506001600160a01b03821661240057856123cc87612b60565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190614071565b8061240f5761240f8689612c8e565b861561247b577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061246382612cda565b9050612478826124738b8461411a565b612d53565b50505b60006124878760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146124bf576124ba88888488612def565b6124cb565b6124cb88888488612e67565b90999098509650505050505050565b805160208201fd5b6109f285858585856124f38b612ec8565b612f4d565b600060086125086002602061443d565b6125129190614450565b9190911c919050565b60608160000361253a5750604080516020810190915260008152611c68565b600061254685856129c5565b9050611b1e81600085613286565b600060086001806125676002602061443d565b612571919061443d565b61257b919061443d565b6125859190614450565b8260ff911c1692915050565b6000611c686125a084846132a9565b5490565b600083836040516020016125b9929190614467565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156126ab576020831061264e5760208304840193506020838161264a5761264a6144a3565b0692505b82156126ab5760208390036000818410156126715750600019600884021c61267b565b50600019600882021c5b8554600886021b81845116821982161784525081841161269c575050611bf1565b50600194909401939182900391015b5b602082106126cd5783548152600190930192601f19909101906020016126ac565b8115611bf1576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761271760ff601b83900360080287901c168361411a565b91506001016126f5565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036127ab57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161279e939291906144b9565b60405180910390a2611bf1565b60006127b785856129c5565b905060006127c4866132ff565b905060005b81518110156128995760008282815181106127e6576127e661418c565b602002602001015190506128126004826affffffffffffffffffffff191661338890919063ffffffff16565b15612890576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061285d908b908b908b908b906004016144ec565b600060405180830381600087803b15801561287757600080fd5b505af115801561288b573d6000803e3d6000fd5b505050505b506001016127c9565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516128ce939291906144b9565b60405180910390a26128e9828565ffffffffffff16856133a6565b60005b81518110156129bc5760008282815181106129095761290961418c565b602002602001015190506129356008826affffffffffffffffffffff191661338890919063ffffffff16565b156129b3576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612980908b908b908b908b906004016144ec565b600060405180830381600087803b15801561299a57600080fd5b505af11580156129ae573d6000803e3d6000fd5b505050505b506001016128ec565b50505050505050565b600082826040516020016129da929190614467565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612a4157602082048401935060208281612a3d57612a3d6144a3565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b6000612a788585612591565b90506000612a95828560ff166028026038011c64ffffffffff1690565b905061170186868660008588886133bc565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612af657612af661418c565b602090810291909101015260008080612b4f7f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061211e565b925092509250611f438383836137f6565b606081601081901b6000612b7383613802565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612bce57612bc97fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613819565b612c05565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612c2c57612c2783613819565b612c63565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612c7593929190614525565b6040516020818303038152906040529350505050919050565b612c98828261389f565b610afb57612ca582612b60565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e99291906145b3565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612d1357612d1361418c565b6020908102919091010152600061103e7f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6122a9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612d8957612d8961418c565b602002602001018181525050610f1d7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612dd291815260200190565b60408051601f19818403018152919052630100080160dd1b612294565b60006060836001600160a01b03166000612e0a8589896138fd565b604051612e1791906145de565b60006040518083038185875af1925050503d8060008114612e54576040519150601f19603f3d011682016040523d82523d6000602084013e612e59565b606091505b509097909650945050505050565b60006060836001600160a01b0316612e808488886138fd565b604051612e8d91906145de565b600060405180830381855af49150503d8060008114612e54576040519150601f19603f3d011682016040523d82523d6000602084013e612e59565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d000000000000000000008201612f1757507e60030220202000000000000000000000000000000000000000000000000000919050565b610439612f447f746273746f72650000000000000000005461626c6573000000000000000000008461392c565b60206000612a1b565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001603612fd957857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051612fcc94939291906145fa565b60405180910390a2611701565b6000612fe4876132ff565b905060005b81518110156130bd5760008282815181106130065761300661418c565b602002602001015190506130326001826affffffffffffffffffffff191661338890919063ffffffff16565b156130b4576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613081908c908c908c908c908c908c90600401614639565b600060405180830381600087803b15801561309b57600080fd5b505af11580156130af573d6000803e3d6000fd5b505050505b50600101612fe9565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516130f494939291906145fa565b60405180910390a2600061310888886129c5565b90506000602087019050613120826000895184613948565b600061312b85612554565b11156131af57600061313d8a8a6132a9565b878155905060208601915060008060005b61315788612554565b8160ff1610156131aa5761316c8d8d836125a4565b92506131878a8260ff166028026038011c64ffffffffff1690565b91506131968360008488613948565b6131a0828661411a565b945060010161314e565b505050505b60005b8351811015611d185760008482815181106131cf576131cf61418c565b602002602001015190506131fb6002826affffffffffffffffffffff191661338890919063ffffffff16565b1561327d576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061324a908e908e908e908e908e908e90600401614639565b600060405180830381600087803b15801561326457600080fd5b505af1158015613278573d6000803e3d6000fd5b505050505b506001016131b2565b60405160208101601f19603f84840101166040528282526106b985858584612624565b600082826040516020016132be929190614467565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106133395761333961418c565b602090810291909101015260006133717f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613a07565b905061103e6133838260008451613a41565b613acf565b60008160ff16826133998560581c90565b1660ff1614905092915050565b610f1d838383516133b78560200190565b613948565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461347c577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161343a91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e9939291600401614692565b6000613497828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836134b0919061443d565b6134ba919061411a565b90508082141580156134dc5750816134d286886146d3565b64ffffffffff1614155b1561352c576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff16111561357d576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b600061358a848984613ae0565b905060006135978b6132ff565b905060005b81518110156136625760008282815181106135b9576135b961418c565b602002602001015190506135e56010826affffffffffffffffffffff191661338890919063ffffffff16565b1561365957606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161362697969594939291906146f8565b600060405180830381600087803b15801561364057600080fd5b505af1158015613654573d6000803e3d6000fd5b505050505b5060010161359c565b5064ffffffffff881660005b8a60ff168160ff1610156136a157613695878260ff166028026038011c64ffffffffff1690565b9091019060010161366e565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516136dc96959493929190614756565b60405180910390a2508284146136fd5760006136f88c8c6132a9565b839055505b600061370a8c8c8c6125a4565b905061371e818a64ffffffffff16896133a6565b5060005b81518110156137e857600082828151811061373f5761373f61418c565b6020026020010151905061376b6020826affffffffffffffffffffff191661338890919063ffffffff16565b156137df57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016137ac97969594939291906146f8565b600060405180830381600087803b1580156137c657600080fd5b505af11580156137da573d6000803e3d6000fd5b505050505b50600101613722565b505050505050505050505050565b60008061239385613bae565b60006138106070601061411a565b9190911b919050565b606060005b601081101561386f576fffffffffffffffffffffffffffffffff198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561386f5760010161381e565b604080516fffffffffffffffffffffffffffffffff1985166020820152815160309091019091528181528061103e565b60006138ed7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613bca565b80611c685750611c688383613bca565b6060838383604051602001613914939291906147b2565b60405160208183030381529060405290509392505050565b60408051602081018490529081018290526000906060016129da565b82156139c257602083106139725760208304840193506020838161396e5761396e6144a3565b0692505b82156139c25760208390036000600019600885021c1990506008850281811c91508351811c90508119875416828216178755508184116139b3575050611bf1565b50600194909401939182900391015b5b602082106139e45780518455600190930192601f19909101906020016139c3565b8115611bf1576000600019600884021c8554835182191691161785555050505050565b606061103e613a178585856125a4565b6000613a3c85613a278989612591565b9060ff166028026038011c64ffffffffff1690565b613286565b600081831180613a515750835182115b15613a8e578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e9939291906147f1565b60208401613a9c848261411a565b90506000613aaa858561443d565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611c688360156000613c93565b600064ffffffffff821115613b24576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613b565780850382019150613b5e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612ab5565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613c0357613c0361418c565b602002602001018181525050826001600160a01b031660001b81600181518110613c2f57613c2f61418c565b60209081029190910101526000613c877f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006122a9565b9050611b1e8160f81c90565b60606000613ca18560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613cc757613cc76144a3565b04905060405193506020840160208202810160405281855260005b82811015613d02578451871c825293870193602090910190600101613ce2565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613d3b57613d3b613dbf565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613d7657600080fd5b5035919050565b600060208284031215613d8f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c6857600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613df357634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613e1881613dd5565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613df357600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613eab57613eab613e6c565b604052919050565b600067ffffffffffffffff821115613ecd57613ecd613e6c565b50601f01601f191660200190565b600082601f830112613eec57600080fd5b8135613eff613efa82613eb3565b613e82565b818152846020838601011115613f1457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613f4657600080fd5b8335613f5181613e57565b925060208401359150604084013567ffffffffffffffff811115613f7457600080fd5b613f8086828701613edb565b9150509250925092565b60208101613f9783613dd5565b91905290565b600080600060608486031215613fb257600080fd5b8335925060208401359150604084013560038110613fcf57600080fd5b809150509250925092565b60008060408385031215613fed57600080fd5b82359150602083013567ffffffffffffffff81111561400b57600080fd5b61401785828601613edb565b9150509250929050565b60005b8381101561403c578181015183820152602001614024565b50506000910152565b6000815180845261405d816020860160208601614021565b601f01601f19169290920160200192915050565b82815260406020820152600061103e6040830184614045565b600082601f83011261409b57600080fd5b81516140a9613efa82613eb3565b8181528460208386010111156140be57600080fd5b61103e826020830160208701614021565b6000602082840312156140e157600080fd5b815167ffffffffffffffff8111156140f857600080fd5b61103e8482850161408a565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439614104565b6000600019820361414057614140614104565b5060010190565b60006020828403121561415957600080fd5b8151611c6881613e57565b83815261417083613dd5565b826020820152606060408201526000611b1e6060830184614045565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156141ea5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561422357815187529582019590820190600101614207565b509495945050505050565b83815260606020820152600061424760608301856141f2565b9050826040830152949350505050565b60008060006060848603121561426c57600080fd5b835167ffffffffffffffff8082111561428457600080fd5b6142908783880161408a565b94506020860151935060408601519150808211156142ad57600080fd5b50613f808682870161408a565b85815260a0602082015260006142d360a08301876141f2565b60ff8616604084015282810360608401526142ee8186614045565b9150508260808301529695505050505050565b84815260806020820152600061431a60808301866141f2565b60ff949094166040830152506060015292915050565b60006020828403121561434257600080fd5b5051919050565b88815287602082015261435b87613dd5565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006143a760a08301876141f2565b82810360408401526143b98187614045565b905084606084015282810360808401526143d38185614045565b98975050505050505050565b600060ff821660ff81036143f5576143f5614104565b60010192915050565b84815260806020820152600061441760808301866141f2565b60ff8516604084015282810360608401526144328185614045565b979650505050505050565b8181038181111561043957610439614104565b808202811582820484141761043957610439614104565b8281526000602080830184516020860160005b828110156144965781518452928401929084019060010161447a565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006144cc60608301866141f2565b65ffffffffffff851660208401528281036040840152610d978185614045565b84815260806020820152600061450560808301866141f2565b65ffffffffffff8516604084015282810360608401526144328185614045565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451614586816003860160208901614021565b8084019050816003820152845191506145a6826004830160208801614021565b0160040195945050505050565b6040815260006145c66040830185614045565b90506001600160a01b03831660208301529392505050565b600082516145f0818460208701614021565b9190910192915050565b60808152600061460d60808301876141f2565b828103602084015261461f8187614045565b905084604084015282810360608401526144328185614045565b86815260c06020820152600061465260c08301886141f2565b82810360408401526146648188614045565b9050856060840152828103608084015261467e8186614045565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611b1e6060830184614045565b64ffffffffff8181168382160190808211156146f1576146f1614104565b5092915050565b87815260e06020820152600061471160e08301896141f2565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526147488185614045565b9a9950505050505050505050565b60c08152600061476960c08301896141f2565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526147a58185614045565b9998505050505050505050565b600084516147c4818460208901614021565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006148046060830186614045565b6020830194909452506040015291905056fea264697066735822122086d244e76566d88f08574505a94c682c41e0427c140ef488ae6e6840ef8c383e64736f6c63430008180033","sourceMap":"1812:6136:211:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101285760003560e01c8063623daa05116100a5578063c74dedc811610074578063e1af802c11610059578063e1af802c14610345578063ebee03bb1461035a578063f8c675611461037a57600080fd5b8063c74dedc814610305578063deb931a21461032557600080fd5b8063623daa0514610290578063679ee16d146102b05780638338f0e0146102c5578063b27cbcbb146102e557600080fd5b8063143f3021116100fc57806323801570116100e1578063238015701461022b57806345ec93541461025857806354b8d5e31461027057600080fd5b8063143f3021146101dd5780631ecb393f1461020b57600080fd5b8062d43ec61461012d57806301ffc9a71461016b5780630bb700dc1461019b578063119df25f146101c8575b600080fd5b34801561013957600080fd5b5061014e610148366004613d64565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017757600080fd5b5061018b610186366004613d7d565b6103a6565b6040519015158152602001610162565b3480156101a757600080fd5b506101bb6101b6366004613d64565b61043f565b6040516101629190613df6565b3480156101d457600080fd5b5061014e610450565b3480156101e957600080fd5b506101fd6101f8366004613f31565b61045f565b604051908152602001610162565b34801561021757600080fd5b506101fd610226366004613d64565b6106c1565b34801561023757600080fd5b5061024b610246366004613d64565b61073f565b6040516101629190613f8a565b34801561026457600080fd5b5036601f1901356101fd565b34801561027c57600080fd5b506101fd61028b366004613d64565b61074a565b34801561029c57600080fd5b5061018b6102ab366004613d64565b610755565b6102c36102be366004613f9d565b610881565b005b3480156102d157600080fd5b506101fd6102e0366004613d64565b6109f9565b3480156102f157600080fd5b506102c3610300366004613fda565b610a8e565b34801561031157600080fd5b506102c3610320366004613d64565b610aff565b34801561033157600080fd5b5061014e610340366004613d64565b610ccf565b34801561035157600080fd5b5061014e610cda565b34801561036657600080fd5b506101fd610375366004613d64565b610ce4565b34801561038657600080fd5b506101fd610395366004613d64565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061043957507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610447613d0e565b61043982610cef565b600061045a610da1565b905090565b60008061046a610dd3565b90506bffffffffffffffffffffffff81106104f25760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104fa610cda565b6001600160a01b0316633ae7af086105317f4368617261637465727300000000000000000000000000000000000000000000610e06565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526105dd929190600401614071565b6000604051808303816000875af11580156105fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261062491908101906140cf565b5061062e816109f9565b915061063a8286610e53565b6106448282610f22565b61064d84610fa1565b1561069a5760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c7265616479206578697374730000000000000000000000000060448201526064016104e9565b6106a5846001611046565b6106af82856110ff565b6106b9818461117e565b509392505050565b60006106cd60136111b1565b82106106db57506014919050565b60005b601481101561073957826106f1826111b1565b1115801561071057508261070e61070983600161411a565b6111b1565b115b156107275761072081600161411a565b9150610739565b806107318161412d565b9150506106de565b50919050565b60006104398261122d565b6000610439826112d7565b6000806107628360601c90565b90506bffffffffffffffffffffffff8316600061077d611369565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865afa9250505080156107e3575060408051601f3d908101601f191682019092526107e091810190614147565b60015b15610862576107f0611369565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161081d91815260200190565b602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190614147565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b61088a82611373565b156108fd5760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c6400000000000000000000000000000000000000000060648201526084016104e9565b61090682611405565b6109525760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e0000000000000000000000000060448201526064016104e9565b600061095e83836114c1565b6109f284828560405160200161097691815260200190565b60408051601f1981840301815290829052610995939291602401614164565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526115aa565b5050505050565b600080610a04611369565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a3191815260200190565b602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190614147565b60601b6bffffffffffffffffffffffff19169290921792915050565b610a9782611405565b610ae35760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a454400000000000060448201526064016104e9565b610afb6bffffffffffffffffffffffff83168261117e565b5050565b610b0881611405565b610b545760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f757220636861726163746572000000000000000000000000000060448201526064016104e9565b610b5d81611373565b15610baa5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d650000000000000060448201526064016104e9565b6000610bb582610cef565b600160e0820152608081015160a08201529050610bd28282611658565b610bda610cda565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b50505050610c65610cda565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610c9291815260200190565b600060405180830381600087803b158015610cac57600080fd5b505af1158015610cc0573d6000803e3d6000fd5b50505050610afb826001611709565b60006104398261178d565b600061045a61182a565b600061043982611834565b610cf7613d0e565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610d2d57610d2d61418c565b602090810291909101015260008080610d867f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006118c6565b925092509250610d97838383611996565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610dd05750335b90565b600080610dde611a0e565b90506000610ded826000611a76565b610df890600161411a565b905061043982600083611b27565b60006104397f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611bf7565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e8957610e8961418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610ee8919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611c6f565b505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f5857610f5861418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610ee891815260200190565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610fda57610fda61418c565b602090810291909101015260006110327f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611d24565b905061103e8160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061107c5761107c61418c565b602002602001018181525050610f1d7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016110ca91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611c6f565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106111355761113561418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610ee891815260200190565b610afb6111aa7f4368617261637465727300000000000000000000000000000000000000000000611de1565b8383611e2e565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106111ed576111ed61418c565b6020908102919091010152600061103e7f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611d24565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106112665761126661418c565b602090810291909101015260006112bf7f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611d24565b905060f881901c600281111561103e5761103e613dbf565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106113105761131061418c565b6020908102919091010152600061103e7f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611d24565b600061045a611a0e565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106113ac576113ac61418c565b602090810291909101015260006110327f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611d24565b600061140f611369565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561147c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a09190614147565b6001600160a01b03166114b1610450565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106114f7576114f761418c565b6020908102919091010152610f1d7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561153a5761153a613dbf565b604051602001611575919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611c6f565b60606000806115c06115bb856141a2565b611e80565b91509150816000801b03611626576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016104e9565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168217905261103e8285611f50565b600061168a826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161202b565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106116c9576116c961418c565b60209081029190910101526117017f746255440000000000000000000000005374617473000000000000000000000082868686612069565b505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061173f5761173f61418c565b602002602001018181525050610f1d7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610ee891151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106117c6576117c661418c565b6020908102919091010152600061181f7f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611d24565b60601c949350505050565b600061045a6120df565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061186d5761186d61418c565b6020908102919091010152600061103e7f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611d24565b60606000606060006118d66120df565b9050306001600160a01b038216036118ff576118f387878761211e565b9350935093505061198d565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611948908a908a908a9060040161422e565b600060405180830381865afa158015611965573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118f39190810190614257565b93509350939050565b61199e613d0e565b6119a784612226565b60e0890181905260c0890182905260a0890183905260808901849052606089018590528860208101604082018860028111156119e5576119e5613dbf565b60028111156119f6576119f6613dbf565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611a6c7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611d24565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611abb57611abb61418c565b6020026020010181815250508260001b81600181518110611ade57611ade61418c565b60209081029190910101526000611b1e7f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611d24565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611b6857611b6861418c565b6020026020010181815250508260001b81600181518110611b8b57611b8b61418c565b602002602001018181525050611bf17f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611bd491815260200190565b60408051601f19818403018152919052630100080160dd1b611c6f565b50505050565b6000611c056070601061411a565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b6000611c796120df565b9050306001600160a01b03821603611c9d57611c988686868686612294565b611701565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611cea90899089908990899089906004016142ba565b600060405180830381600087803b158015611d0457600080fd5b505af1158015611d18573d6000803e3d6000fd5b50505050505050505050565b600080611d2f6120df565b9050306001600160a01b03821603611d5557611d4d868686866122a9565b91505061103e565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611da0908990899089908990600401614301565b602060405180830381865afa158015611dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4d9190614330565b60006104397f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611bf7565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611e6757611e6761418c565b602002602001018181525050611bf184826000856122d6565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611ed957611ed961418c565b602090810291909101015260008080611f327f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006118c6565b925092509250611f43838383612387565b9550955050505050915091565b60606000611f5c61182a565b90506001600160a01b0381163003611f9d576000611f84611f7b610da1565b6000878761239f565b9350905080611f9657611f96836124da565b5050610439565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611fe49087908790600401614071565b6000604051808303816000875af1158015612003573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261103e91908101906140cf565b6060888888888888888860405160200161204c989796959493929190614349565b604051602081830303815290604052905098975050505050505050565b60006120736120df565b9050306001600160a01b0382160361209257611c9886868686866124e2565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611cea908990899089908990899060040161438e565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680612119573391505090565b919050565b606060006060600061212f856124f8565b905061213c87878361251b565b9350600061214986612554565b9050801561221b5761215b8888612591565b935066ffffffffffffff841667ffffffffffffffff81111561217f5761217f613e6c565b6040519080825280601f01601f1916602001820160405280156121a9576020820181803683370190505b5092506020830160005b828160ff1610156122185760006121cb8b8b846125a4565b905060006121e8888460ff166028026038011c64ffffffffff1690565b90506121f78260008387612624565b612201818561411a565b935050508080612210906143df565b9150506121b3565b50505b505093509350939050565b600080600080600080600080612240896000016020015190565b60408a015160608b0151919950975060f81c600281111561226357612263613dbf565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b6109f285856122a384876126f0565b85612721565b6000611b1e6122b886866129c5565b60ff858116601b0360080285901c166122d185876126f0565b612a1b565b60006122e06120df565b9050306001600160a01b03821603612303576122fe85858585612a6c565b6109f2565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061234e9088908890889088906004016143fe565b600060405180830381600087803b15801561236857600080fd5b505af115801561237c573d6000803e3d6000fd5b505050505050505050565b60008061239385612aa7565b90969095509350505050565b600060606000806123af86612abc565b90925090506001600160a01b03821661240057856123cc87612b60565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016104e9929190614071565b8061240f5761240f8689612c8e565b861561247b577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061246382612cda565b9050612478826124738b8461411a565b612d53565b50505b60006124878760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146124bf576124ba88888488612def565b6124cb565b6124cb88888488612e67565b90999098509650505050505050565b805160208201fd5b6109f285858585856124f38b612ec8565b612f4d565b600060086125086002602061443d565b6125129190614450565b9190911c919050565b60608160000361253a5750604080516020810190915260008152611c68565b600061254685856129c5565b9050611b1e81600085613286565b600060086001806125676002602061443d565b612571919061443d565b61257b919061443d565b6125859190614450565b8260ff911c1692915050565b6000611c686125a084846132a9565b5490565b600083836040516020016125b9929190614467565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156126ab576020831061264e5760208304840193506020838161264a5761264a6144a3565b0692505b82156126ab5760208390036000818410156126715750600019600884021c61267b565b50600019600882021c5b8554600886021b81845116821982161784525081841161269c575050611bf1565b50600194909401939182900391015b5b602082106126cd5783548152600190930192601f19909101906020016126ac565b8115611bf1576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106b95761271760ff601b83900360080287901c168361411a565b91506001016126f5565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036127ab57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161279e939291906144b9565b60405180910390a2611bf1565b60006127b785856129c5565b905060006127c4866132ff565b905060005b81518110156128995760008282815181106127e6576127e661418c565b602002602001015190506128126004826affffffffffffffffffffff191661338890919063ffffffff16565b15612890576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061285d908b908b908b908b906004016144ec565b600060405180830381600087803b15801561287757600080fd5b505af115801561288b573d6000803e3d6000fd5b505050505b506001016127c9565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516128ce939291906144b9565b60405180910390a26128e9828565ffffffffffff16856133a6565b60005b81518110156129bc5760008282815181106129095761290961418c565b602002602001015190506129356008826affffffffffffffffffffff191661338890919063ffffffff16565b156129b3576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612980908b908b908b908b906004016144ec565b600060405180830381600087803b15801561299a57600080fd5b505af11580156129ae573d6000803e3d6000fd5b505050505b506001016128ec565b50505050505050565b600082826040516020016129da929190614467565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612a4157602082048401935060208281612a3d57612a3d6144a3565b0691505b508254600882021b6020829003808411156106b9576001850154600882021c82179150509392505050565b6000612a788585612591565b90506000612a95828560ff166028026038011c64ffffffffff1690565b905061170186868660008588886133bc565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612af657612af661418c565b602090810291909101015260008080612b4f7f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061211e565b925092509250611f438383836137f6565b606081601081901b6000612b7383613802565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612bce57612bc97fffffffffffffffffffffffffffff0000000000000000000000000000000000008416613819565b612c05565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612c2c57612c2783613819565b612c63565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612c7593929190614525565b6040516020818303038152906040529350505050919050565b612c98828261389f565b610afb57612ca582612b60565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016104e99291906145b3565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612d1357612d1361418c565b6020908102919091010152600061103e7f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6122a9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612d8957612d8961418c565b602002602001018181525050610f1d7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612dd291815260200190565b60408051601f19818403018152919052630100080160dd1b612294565b60006060836001600160a01b03166000612e0a8589896138fd565b604051612e1791906145de565b60006040518083038185875af1925050503d8060008114612e54576040519150601f19603f3d011682016040523d82523d6000602084013e612e59565b606091505b509097909650945050505050565b60006060836001600160a01b0316612e808488886138fd565b604051612e8d91906145de565b600060405180830381855af49150503d8060008114612e54576040519150601f19603f3d011682016040523d82523d6000602084013e612e59565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d000000000000000000008201612f1757507e60030220202000000000000000000000000000000000000000000000000000919050565b610439612f447f746273746f72650000000000000000005461626c6573000000000000000000008461392c565b60206000612a1b565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001603612fd957857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051612fcc94939291906145fa565b60405180910390a2611701565b6000612fe4876132ff565b905060005b81518110156130bd5760008282815181106130065761300661418c565b602002602001015190506130326001826affffffffffffffffffffff191661338890919063ffffffff16565b156130b4576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613081908c908c908c908c908c908c90600401614639565b600060405180830381600087803b15801561309b57600080fd5b505af11580156130af573d6000803e3d6000fd5b505050505b50600101612fe9565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516130f494939291906145fa565b60405180910390a2600061310888886129c5565b90506000602087019050613120826000895184613948565b600061312b85612554565b11156131af57600061313d8a8a6132a9565b878155905060208601915060008060005b61315788612554565b8160ff1610156131aa5761316c8d8d836125a4565b92506131878a8260ff166028026038011c64ffffffffff1690565b91506131968360008488613948565b6131a0828661411a565b945060010161314e565b505050505b60005b8351811015611d185760008482815181106131cf576131cf61418c565b602002602001015190506131fb6002826affffffffffffffffffffff191661338890919063ffffffff16565b1561327d576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061324a908e908e908e908e908e908e90600401614639565b600060405180830381600087803b15801561326457600080fd5b505af1158015613278573d6000803e3d6000fd5b505050505b506001016131b2565b60405160208101601f19603f84840101166040528282526106b985858584612624565b600082826040516020016132be929190614467565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106133395761333961418c565b602090810291909101015260006133717f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613a07565b905061103e6133838260008451613a41565b613acf565b60008160ff16826133998560581c90565b1660ff1614905092915050565b610f1d838383516133b78560200190565b613948565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461347c577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161343a91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526104e9939291600401614692565b6000613497828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836134b0919061443d565b6134ba919061411a565b90508082141580156134dc5750816134d286886146d3565b64ffffffffff1614155b1561352c576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016104e9565b818664ffffffffff16111561357d576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016104e9565b600061358a848984613ae0565b905060006135978b6132ff565b905060005b81518110156136625760008282815181106135b9576135b961418c565b602002602001015190506135e56010826affffffffffffffffffffff191661338890919063ffffffff16565b1561365957606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b815260040161362697969594939291906146f8565b600060405180830381600087803b15801561364057600080fd5b505af1158015613654573d6000803e3d6000fd5b505050505b5060010161359c565b5064ffffffffff881660005b8a60ff168160ff1610156136a157613695878260ff166028026038011c64ffffffffff1690565b9091019060010161366e565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516136dc96959493929190614756565b60405180910390a2508284146136fd5760006136f88c8c6132a9565b839055505b600061370a8c8c8c6125a4565b905061371e818a64ffffffffff16896133a6565b5060005b81518110156137e857600082828151811061373f5761373f61418c565b6020026020010151905061376b6020826affffffffffffffffffffff191661338890919063ffffffff16565b156137df57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016137ac97969594939291906146f8565b600060405180830381600087803b1580156137c657600080fd5b505af11580156137da573d6000803e3d6000fd5b505050505b50600101613722565b505050505050505050505050565b60008061239385613bae565b60006138106070601061411a565b9190911b919050565b606060005b601081101561386f576fffffffffffffffffffffffffffffffff198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561386f5760010161381e565b604080516fffffffffffffffffffffffffffffffff1985166020820152815160309091019091528181528061103e565b60006138ed7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613bca565b80611c685750611c688383613bca565b6060838383604051602001613914939291906147b2565b60405160208183030381529060405290509392505050565b60408051602081018490529081018290526000906060016129da565b82156139c257602083106139725760208304840193506020838161396e5761396e6144a3565b0692505b82156139c25760208390036000600019600885021c1990506008850281811c91508351811c90508119875416828216178755508184116139b3575050611bf1565b50600194909401939182900391015b5b602082106139e45780518455600190930192601f19909101906020016139c3565b8115611bf1576000600019600884021c8554835182191691161785555050505050565b606061103e613a178585856125a4565b6000613a3c85613a278989612591565b9060ff166028026038011c64ffffffffff1690565b613286565b600081831180613a515750835182115b15613a8e578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016104e9939291906147f1565b60208401613a9c848261411a565b90506000613aaa858561443d565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000611c688360156000613c93565b600064ffffffffff821115613b24576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016104e9565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613b565780850382019150613b5e565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612ab5565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613c0357613c0361418c565b602002602001018181525050826001600160a01b031660001b81600181518110613c2f57613c2f61418c565b60209081029190910101526000613c877f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006122a9565b9050611b1e8160f81c90565b60606000613ca18560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613cc757613cc76144a3565b04905060405193506020840160208202810160405281855260005b82811015613d02578451871c825293870193602090910190600101613ce2565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613d3b57613d3b613dbf565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613d7657600080fd5b5035919050565b600060208284031215613d8f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c6857600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613df357634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613e1881613dd5565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613df357600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613eab57613eab613e6c565b604052919050565b600067ffffffffffffffff821115613ecd57613ecd613e6c565b50601f01601f191660200190565b600082601f830112613eec57600080fd5b8135613eff613efa82613eb3565b613e82565b818152846020838601011115613f1457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613f4657600080fd5b8335613f5181613e57565b925060208401359150604084013567ffffffffffffffff811115613f7457600080fd5b613f8086828701613edb565b9150509250925092565b60208101613f9783613dd5565b91905290565b600080600060608486031215613fb257600080fd5b8335925060208401359150604084013560038110613fcf57600080fd5b809150509250925092565b60008060408385031215613fed57600080fd5b82359150602083013567ffffffffffffffff81111561400b57600080fd5b61401785828601613edb565b9150509250929050565b60005b8381101561403c578181015183820152602001614024565b50506000910152565b6000815180845261405d816020860160208601614021565b601f01601f19169290920160200192915050565b82815260406020820152600061103e6040830184614045565b600082601f83011261409b57600080fd5b81516140a9613efa82613eb3565b8181528460208386010111156140be57600080fd5b61103e826020830160208701614021565b6000602082840312156140e157600080fd5b815167ffffffffffffffff8111156140f857600080fd5b61103e8482850161408a565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439614104565b6000600019820361414057614140614104565b5060010190565b60006020828403121561415957600080fd5b8151611c6881613e57565b83815261417083613dd5565b826020820152606060408201526000611b1e6060830184614045565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156141ea5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561422357815187529582019590820190600101614207565b509495945050505050565b83815260606020820152600061424760608301856141f2565b9050826040830152949350505050565b60008060006060848603121561426c57600080fd5b835167ffffffffffffffff8082111561428457600080fd5b6142908783880161408a565b94506020860151935060408601519150808211156142ad57600080fd5b50613f808682870161408a565b85815260a0602082015260006142d360a08301876141f2565b60ff8616604084015282810360608401526142ee8186614045565b9150508260808301529695505050505050565b84815260806020820152600061431a60808301866141f2565b60ff949094166040830152506060015292915050565b60006020828403121561434257600080fd5b5051919050565b88815287602082015261435b87613dd5565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006143a760a08301876141f2565b82810360408401526143b98187614045565b905084606084015282810360808401526143d38185614045565b98975050505050505050565b600060ff821660ff81036143f5576143f5614104565b60010192915050565b84815260806020820152600061441760808301866141f2565b60ff8516604084015282810360608401526144328185614045565b979650505050505050565b8181038181111561043957610439614104565b808202811582820484141761043957610439614104565b8281526000602080830184516020860160005b828110156144965781518452928401929084019060010161447a565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006144cc60608301866141f2565b65ffffffffffff851660208401528281036040840152610d978185614045565b84815260806020820152600061450560808301866141f2565b65ffffffffffff8516604084015282810360608401526144328185614045565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a000000000000000000000000000000000000000000000000000000000000008060028401528451614586816003860160208901614021565b8084019050816003820152845191506145a6826004830160208801614021565b0160040195945050505050565b6040815260006145c66040830185614045565b90506001600160a01b03831660208301529392505050565b600082516145f0818460208701614021565b9190910192915050565b60808152600061460d60808301876141f2565b828103602084015261461f8187614045565b905084604084015282810360608401526144328185614045565b86815260c06020820152600061465260c08301886141f2565b82810360408401526146648188614045565b9050856060840152828103608084015261467e8186614045565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611b1e6060830184614045565b64ffffffffff8181168382160190808211156146f1576146f1614104565b5092915050565b87815260e06020820152600061471160e08301896141f2565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526147488185614045565b9a9950505050505050505050565b60c08152600061476960c08301896141f2565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526147a58185614045565b9998505050505050505050565b600084516147c4818460208901614021565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006148046060830186614045565b6020830194909452506040015291905056fea264697066735822122086d244e76566d88f08574505a94c682c41e0427c140ef488ae6e6840ef8c383e64736f6c63430008180033","sourceMap":"1812:6136:211:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:144;;;;;;;;;;-1:-1:-1;2973:144:211;;;;;:::i;:::-;3106:2;3082:26;;2973:144;;;;-1:-1:-1;;;;;363:55:228;;;345:74;;333:2;318:18;2973:144:211;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:228;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:228;7822:124:211;;;;;;;;;;-1:-1:-1;7822:124:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;3893:837:211:-;;;;;;;;;;-1:-1:-1;3893:837:211;;;;;:::i;:::-;;:::i;:::-;;;4284:25:228;;;4272:2;4257:18;3893:837:211;4138:177:228;5992:492:211;;;;;;;;;;-1:-1:-1;5992:492:211;;;;;:::i;:::-;;:::i;1989:129::-;;;;;;;;;;-1:-1:-1;1989:129:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1853:130:211;;;;;;;;;;-1:-1:-1;1853:130:211;;;;;:::i;:::-;;:::i;3123:413::-;;;;;;;;;;-1:-1:-1;3123:413:211;;;;;:::i;:::-;;:::i;4736:545::-;;;;;;:::i;:::-;;:::i;:::-;;2460:266;;;;;;;;;;-1:-1:-1;2460:266:211;;;;;:::i;:::-;;:::i;6490:219::-;;;;;;;;;;-1:-1:-1;6490:219:211;;;;;:::i;:::-;;:::i;5287:699::-;;;;;;;;;;-1:-1:-1;5287:699:211;;;;;:::i;:::-;;:::i;7555:125::-;;;;;;;;;;-1:-1:-1;7555:125:211;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7686:130:211:-;;;;;;;;;;-1:-1:-1;7686:130:211;;;;;:::i;:::-;;:::i;2732:143::-;;;;;;;;;;-1:-1:-1;2732:143:211;;;;;:::i;:::-;2830:37;;;2732:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7822:124:211:-;7882:16;;:::i;:::-;7917:22;7927:11;7917:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;3893:837:211:-;4003:19;4038:24;4065:28;:26;:28::i;:::-;4038:55;-1:-1:-1;4130:16:211;4111:35;;4103:83;;;;-1:-1:-1;;;4103:83:211;;5935:2:228;4103:83:211;;;5917:21:228;5974:2;5954:18;;;5947:30;6013:34;5993:18;;;5986:62;6084:5;6064:18;;;6057:33;6107:19;;4103:83:211;;;;;;;;;4203:8;:6;:8::i;:::-;-1:-1:-1;;;;;4196:21:211;;4231:37;4247:20;4231:15;:37::i;:::-;4270:65;;-1:-1:-1;;;;;6329:55:228;;4270:65:211;;;6311:74:228;6401:18;;;6394:34;;;6284:18;;4270:65:211;;;-1:-1:-1;;4270:65:211;;;;;;;;;;;;;;;;;;;;4196:149;;4270:65;4196:149;;;;;;;;;4270:65;4196:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4196:149:211;;;;;;;;;;;;:::i;:::-;;4369:35;4387:16;4369:17;:35::i;:::-;4355:49;;4414:41;4434:11;4447:7;4414:19;:41::i;:::-;4465:52;4487:11;4500:16;4465:21;:52::i;:::-;4536:25;4556:4;4536:19;:25::i;:::-;4535:26;4527:58;;;;-1:-1:-1;;;4527:58:211;;8342:2:228;4527:58:211;;;8324:21:228;8381:2;8361:18;;;8354:30;8420:21;8400:18;;;8393:49;8459:18;;4527:58:211;8140:343:228;4527:58:211;4595:31;4615:4;4621;4595:19;:31::i;:::-;4636:37;4655:11;4668:4;4636:18;:37::i;:::-;4683:40;4696:16;4714:8;4683:12;:40::i;:::-;4028:702;3893:837;;;;;:::o;5992:492::-;6067:20;6117:14;6128:2;6117:10;:14::i;:::-;6103:10;:28;6099:379;;-1:-1:-1;6162:2:211;5992:492;;;:::o;6099:379::-;6200:9;6195:273;6215:2;6211:1;:6;6195:273;;;6259:10;6242:13;6253:1;6242:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;6293:10:211;6273:17;6284:5;:1;6288;6284:5;:::i;:::-;6273:10;:17::i;:::-;:30;6242:61;6238:155;;;6342:5;:1;6346;6342:5;:::i;:::-;6327:20;;6369:5;;6238:155;6432:3;;;;:::i;:::-;;;;6195:273;;;;5992:492;;;:::o;1989:129::-;2049:14;2084:27;2099:11;2084:14;:27::i;1853:130::-;1912:13;1945:31;1964:11;1945:18;:31::i;3123:413::-;3193:4;3209:20;3232:28;3248:11;3106:2;3082:26;;2973:144;3232:28;3209:51;-1:-1:-1;2830:37:211;;;3270:15;3359:17;:15;:17::i;:::-;-1:-1:-1;;;;;3359:25:211;;3385:7;3359:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3359:34:211;;;;;;;;;;;;;;;;;;;-1:-1:-1;3359:34:211;;;;;;;;-1:-1:-1;;3359:34:211;;;;;;;;;;;;:::i;:::-;;;3355:135;;;3436:17;:15;:17::i;:::-;-1:-1:-1;;;;;3436:25:211;;3462:7;3436:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3436:34:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3426:44;;3394:87;3355:135;3517:12;-1:-1:-1;;;;;3506:23:211;:7;-1:-1:-1;;;;;3506:23:211;;3499:30;;;;;3123:413;;;:::o;4736:545::-;4851:33;4872:11;4851:20;:33::i;:::-;4850:34;4842:90;;;;-1:-1:-1;;;4842:90:211;;9465:2:228;4842:90:211;;;9447:21:228;9504:2;9484:18;;;9477:30;9543:34;9523:18;;;9516:62;9614:13;9594:18;;;9587:41;9645:19;;4842:90:211;9263:407:228;4842:90:211;4950:21;4959:11;4950:8;:21::i;:::-;4942:53;;;;-1:-1:-1;;;4942:53:211;;9877:2:228;4942:53:211;;;9859:21:228;9916:2;9896:18;;;9889:30;9955:21;9935:18;;;9928:49;9994:18;;4942:53:211;9675:343:228;4942:53:211;5005:26;5073:34;5088:11;5101:5;5073:14;:34::i;:::-;5164:110;5217:16;5235:11;5259;5248:23;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5248:23:211;;;;-1:-1:-1;;5248:23:211;;;;;;;;;;5182:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5182:91:211;;;;;;;;;;;;;;;;;;;;5164:17;:110::i;:::-;;4832:449;4736:545;;;:::o;2460:266::-;2534:19;2565:20;2588:17;:15;:17::i;:::-;-1:-1:-1;;;;;2588:25:211;;2614:16;2588:43;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;2588:43:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2697:2;2663:36;-1:-1:-1;;2663:36:211;:55;;;;;;-1:-1:-1;;2460:266:211:o;6490:219::-;6584:21;6593:11;6584:8;:21::i;:::-;6576:60;;;;-1:-1:-1;;;6576:60:211;;10654:2:228;6576:60:211;;;10636:21:228;10693:2;10673:18;;;10666:30;10732:28;10712:18;;;10705:56;10778:18;;6576:60:211;10452:350:228;6576:60:211;6646:56;2830:37;;;6693:8;6646:12;:56::i;:::-;6490:219;;:::o;5287:699::-;5352:21;5361:11;5352:8;:21::i;:::-;5344:52;;;;-1:-1:-1;;;5344:52:211;;11009:2:228;5344:52:211;;;10991:21:228;11048:2;11028:18;;;11021:30;11087:20;11067:18;;;11060:48;11125:18;;5344:52:211;10807:342:228;5344:52:211;5415:33;5436:11;5415:20;:33::i;:::-;5414:34;5406:72;;;;-1:-1:-1;;;5406:72:211;;11356:2:228;5406:72:211;;;11338:21:228;11395:2;11375:18;;;11368:30;11434:27;11414:18;;;11407:55;11479:18;;5406:72:211;11154:349:228;5406:72:211;5488:26;5517:22;5527:11;5517:9;:22::i;:::-;5567:1;5549:15;;;:19;5607:23;;;;5578:19;;;:53;5488:51;-1:-1:-1;5641:33:211;5651:11;5488:51;5641:9;:33::i;:::-;5691:8;:6;:8::i;:::-;5684:51;;;;;;;;11708:25:228;;;5727:7:211;11749:18:228;;;11742:34;-1:-1:-1;;;;;5684:29:211;;;;;;;11681:18:228;;5684:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5783:8;:6;:8::i;:::-;-1:-1:-1;;;;;5776:38:211;;5815:11;5776:51;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5776:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5940:39;5961:11;5974:4;5940:20;:39::i;7555:125::-;7615:7;7641:32;7661:11;7641:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7686:130:211:-;7751:7;7777:32;7797:11;7777:19;:32::i;13270:402:195:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:195;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:195:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;6889:347:211:-;6945:7;6964:25;6992:42;:40;:42::i;:::-;6964:70;;7044:24;7071:50;7099:17;7119:1;7071:19;:50::i;:::-;:54;;7124:1;7071:54;:::i;:::-;7044:81;;7135:61;7155:17;7174:1;7178:16;7135:19;:61::i;1157:186:219:-;1215:10;1240:100;1275:15;1303:9;1320:18;1240:25;:100::i;4730:249:179:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:179;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;12125:2:228;12121:15;;;;-1:-1:-1;;12117:88:228;12105:101;;12231:2;12222:12;;11976:264;4934:25:179;;;;-1:-1:-1;;4934:25:179;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:179;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12374:19:228;;12418:2;12409:12;;12245:182;2594:287:190;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:190;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:190:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:190;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12583:14:228;12576:22;12571:3;12567:32;12555:45;;12625:1;12616:11;;12432:201;4085:25:190;;;;-1:-1:-1;;4085:25:190;;;;;;;;;1198:66;4034:26;:91::i;5941:246:179:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:179;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12374:19:228;;12418:2;12409:12;;12245:182;6715:168:211;6797:79;6818:38;6835:20;6818:16;:38::i;:::-;6858:7;6867:8;6797:20;:79::i;3297:296:184:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:184;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:184;:64::i;5624:288:195:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:195;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:195;;;;5878:29;;;;;;;;:::i;5306:279:179:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:179;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2279:175:211:-;2329:30;2404:42;:40;:42::i;6512:295:179:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:179;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;7382:167:211:-;7444:4;7483:17;:15;:17::i;:::-;:59;;;;;2830:37;;;7483:59;;;4284:25:228;-1:-1:-1;;;;;7483:25:211;;;;;;;4257:18:228;;7483:59:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7467:75:211;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7467:75:211;;;7382:167;-1:-1:-1;;7382:167:211:o;6279:248:195:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:195;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;12970:3:228;12966:16;;;;12984:66;12962:89;12950:102;;13077:1;13068:11;;12825:260;6477:30:195;;;;-1:-1:-1;;6477:30:195;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13646:98:228;13619:18;;3713:52:107;13502:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;15666:552:195:-;15737:24;15764:207;15784:6;:15;;;15807:6;:14;;;15829:6;:12;;;15849:6;:19;;;15876:6;:20;;;15904:6;:16;;;15928:6;:17;;;15953:6;:12;;;15764;:207::i;:::-;16075:16;;;16089:1;16075:16;;;;;;;;;15737:234;;-1:-1:-1;15978:30:195;;16014:25;;15978:30;;16075:16;;;;;;;;;;;;-1:-1:-1;16075:16:195;16046:45;;16112:8;16097:9;16107:1;16097:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;16127:86;1310:66;16159:9;16170:11;16183:15;16200:12;16127:21;:86::i;:::-;15731:487;;;;15666:552;;:::o;7183:249:179:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:179;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12583:14:228;12576:22;12571:3;12567:32;12555:45;;12625:1;12616:11;;12432:201;4071:290:179;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:195:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:195;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:195:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:195;;;;-1:-1:-1;17879:370:195;;;-1:-1:-1;;;;;17879:370:195:o;5147:257:196:-;5258:16;;;5199:22;5258:16;;;;;;;;;5281:13;5297:64;1269:66;5229:45;5345:1;1398:66;5297:26;:64::i;:::-;5375:23;;;5147:257;-1:-1:-1;;;5147:257:196:o;2640:388:181:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:181;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:181;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:181;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:181:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:181;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:181;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12374:19:228;;12418:2;12409:12;;12245:182;4646:27:181;;;;-1:-1:-1;;4646:27:181;;;;;;;;;-1:-1:-1;;;4595:26:181;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;18916:362:195:-;19145:12;19189:8;19199:7;19208:5;19215:12;19229:13;19244:9;19255:10;19267:5;19172:101;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19165:108;;18916:362;;;;;;;;;;:::o;6458:480:46:-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;6692:242::-;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;1836:227::-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:195:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:195;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:195;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:195;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:195;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:195;-1:-1:-1;;16961:760:195:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;12066:286:45;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12374:19:228;;12418:2;12409:12;;12245:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4015:652:45;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12374:19:228;;12418:2;12409:12;;12245:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25930:12:228;25969:15;;;45340:92:45;;;25951:34:228;26021:15;;;26001:18;;;25994:43;26073:15;;26053:18;;;26046:43;25893:18;;45340:92:45;25724:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;26273:25:228;;;26346:12;26334:25;;26314:18;;;26307:53;26246:18;;45581:74:45;26100:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;28211:79:228;;2092:30:124;;;28199:92:228;2092:30:124;;28307:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;51249:282:45:-;51494:30;;;;;;29054:19:228;;;29089:12;;;29082:28;;;51337:7:45;;29126:12:228;;51494:30:45;28865:279:228;1489:2340:44;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:228;;;4257:18;;7664:67:24;4138:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:190;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:190;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:228:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:228;;14:180;-1:-1:-1;14:180:228:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:228;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:228;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1208:200;1148:266;:::o;1419:777::-;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:228;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:228;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:228;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:228:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:228;3037:15;-1:-1:-1;;3033:88:228;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:228:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:228;3925:18;;3912:32;;-1:-1:-1;3995:2:228;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4687:235::-;4833:2;4818:18;;4845:37;4875:6;4845:37;:::i;:::-;4891:25;;;4687:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:390::-;5416:6;5424;5477:2;5465:9;5456:7;5452:23;5448:32;5445:52;;;5493:1;5490;5483:12;5445:52;5529:9;5516:23;5506:33;;5590:2;5579:9;5575:18;5562:32;5617:18;5609:6;5606:30;5603:50;;;5649:1;5646;5639:12;5603:50;5672;5714:7;5705:6;5694:9;5690:22;5672:50;:::i;:::-;5662:60;;;5338:390;;;;;:::o;6439:250::-;6524:1;6534:113;6548:6;6545:1;6542:13;6534:113;;;6624:11;;;6618:18;6605:11;;;6598:39;6570:2;6563:10;6534:113;;;-1:-1:-1;;6681:1:228;6663:16;;6656:27;6439:250::o;6694:329::-;6735:3;6773:5;6767:12;6800:6;6795:3;6788:19;6816:76;6885:6;6878:4;6873:3;6869:14;6862:4;6855:5;6851:16;6816:76;:::i;:::-;6937:2;6925:15;-1:-1:-1;;6921:88:228;6912:98;;;;7012:4;6908:109;;6694:329;-1:-1:-1;;6694:329:228:o;7028:320::-;7235:6;7224:9;7217:25;7278:2;7273;7262:9;7258:18;7251:30;7198:4;7298:44;7338:2;7327:9;7323:18;7315:6;7298:44;:::i;7353:442::-;7406:5;7459:3;7452:4;7444:6;7440:17;7436:27;7426:55;;7477:1;7474;7467:12;7426:55;7506:6;7500:13;7537:49;7553:32;7582:2;7553:32;:::i;7537:49::-;7611:2;7602:7;7595:19;7657:3;7650:4;7645:2;7637:6;7633:15;7629:26;7626:35;7623:55;;;7674:1;7671;7664:12;7623:55;7687:77;7761:2;7754:4;7745:7;7741:18;7734:4;7726:6;7722:17;7687:77;:::i;7800:335::-;7879:6;7932:2;7920:9;7911:7;7907:23;7903:32;7900:52;;;7948:1;7945;7938:12;7900:52;7981:9;7975:16;8014:18;8006:6;8003:30;8000:50;;;8046:1;8043;8036:12;8000:50;8069:60;8121:7;8112:6;8101:9;8097:22;8069:60;:::i;8488:184::-;-1:-1:-1;;;8537:1:228;8530:88;8637:4;8634:1;8627:15;8661:4;8658:1;8651:15;8677:125;8742:9;;;8763:10;;;8760:36;;;8776:18;;:::i;8807:195::-;8846:3;-1:-1:-1;;8870:5:228;8867:77;8864:103;;8947:18;;:::i;:::-;-1:-1:-1;8994:1:228;8983:13;;8807:195::o;9007:251::-;9077:6;9130:2;9118:9;9109:7;9105:23;9101:32;9098:52;;;9146:1;9143;9136:12;9098:52;9178:9;9172:16;9197:31;9222:5;9197:31;:::i;10023:424::-;10245:6;10234:9;10227:25;10261:37;10291:6;10261:37;:::i;:::-;10334:6;10329:2;10318:9;10314:18;10307:34;10377:2;10372;10361:9;10357:18;10350:30;10208:4;10397:44;10437:2;10426:9;10422:18;10414:6;10397:44;:::i;11787:184::-;-1:-1:-1;;;11836:1:228;11829:88;11936:4;11933:1;11926:15;11960:4;11957:1;11950:15;13090:407;13173:5;13213;13207:12;13255:4;13248:5;13244:16;13238:23;13280:66;13372:2;13368;13364:11;13355:20;;13398:1;13390:6;13387:13;13384:107;;;13478:2;13472;13462:6;13459:1;13455:14;13452:1;13448:22;13444:31;13440:2;13436:40;13432:49;13423:58;;13384:107;;;;13090:407;;;:::o;13755:439::-;13808:3;13846:5;13840:12;13873:6;13868:3;13861:19;13899:4;13928;13923:3;13919:14;13912:21;;13967:4;13960:5;13956:16;13990:1;14000:169;14014:6;14011:1;14008:13;14000:169;;;14075:13;;14063:26;;14109:12;;;;14144:15;;;;14036:1;14029:9;14000:169;;;-1:-1:-1;14185:3:228;;13755:439;-1:-1:-1;;;;;13755:439:228:o;14199:468::-;14499:6;14488:9;14481:25;14542:2;14537;14526:9;14522:18;14515:30;14462:4;14562:56;14614:2;14603:9;14599:18;14591:6;14562:56;:::i;:::-;14554:64;;14654:6;14649:2;14638:9;14634:18;14627:34;14199:468;;;;;;:::o;14672:655::-;14814:6;14822;14830;14883:2;14871:9;14862:7;14858:23;14854:32;14851:52;;;14899:1;14896;14889:12;14851:52;14932:9;14926:16;14961:18;15002:2;14994:6;14991:14;14988:34;;;15018:1;15015;15008:12;14988:34;15041:60;15093:7;15084:6;15073:9;15069:22;15041:60;:::i;:::-;15031:70;;15141:2;15130:9;15126:18;15120:25;15110:35;;15191:2;15180:9;15176:18;15170:25;15154:41;;15220:2;15210:8;15207:16;15204:36;;;15236:1;15233;15226:12;15204:36;;15259:62;15313:7;15302:8;15291:9;15287:24;15259:62;:::i;15332:709::-;15702:6;15691:9;15684:25;15745:3;15740:2;15729:9;15725:18;15718:31;15665:4;15772:57;15824:3;15813:9;15809:19;15801:6;15772:57;:::i;:::-;15877:4;15869:6;15865:17;15860:2;15849:9;15845:18;15838:45;15931:9;15923:6;15919:22;15914:2;15903:9;15899:18;15892:50;15959:32;15984:6;15976;15959:32;:::i;:::-;15951:40;;;16028:6;16022:3;16011:9;16007:19;16000:35;15332:709;;;;;;;;:::o;16046:548::-;16370:6;16359:9;16352:25;16413:3;16408:2;16397:9;16393:18;16386:31;16333:4;16434:57;16486:3;16475:9;16471:19;16463:6;16434:57;:::i;:::-;16539:4;16527:17;;;;16522:2;16507:18;;16500:45;-1:-1:-1;16576:2:228;16561:18;16554:34;16426:65;16046:548;-1:-1:-1;;16046:548:228:o;16599:184::-;16669:6;16722:2;16710:9;16701:7;16697:23;16693:32;16690:52;;;16738:1;16735;16728:12;16690:52;-1:-1:-1;16761:16:228;;16599:184;-1:-1:-1;16599:184:228:o;16788:707::-;17135:6;17130:3;17123:19;17172:6;17167:2;17162:3;17158:12;17151:28;17188:37;17218:6;17188:37;:::i;:::-;17259:3;17255:16;;;;17250:2;17241:12;;17234:38;17297:2;17288:12;;17281:28;;;;17334:2;17325:12;;17318:28;;;;17371:3;17362:13;;17355:29;17409:3;17400:13;;17393:29;17447:3;17438:13;;17431:29;17485:3;17476:13;;16788:707;-1:-1:-1;;16788:707:228:o;17500:794::-;17895:6;17884:9;17877:25;17938:3;17933:2;17922:9;17918:18;17911:31;17858:4;17965:57;18017:3;18006:9;18002:19;17994:6;17965:57;:::i;:::-;18070:9;18062:6;18058:22;18053:2;18042:9;18038:18;18031:50;18104:32;18129:6;18121;18104:32;:::i;:::-;18090:46;;18172:6;18167:2;18156:9;18152:18;18145:34;18228:9;18220:6;18216:22;18210:3;18199:9;18195:19;18188:51;18256:32;18281:6;18273;18256:32;:::i;:::-;18248:40;17500:794;-1:-1:-1;;;;;;;;17500:794:228:o;18299:175::-;18336:3;18380:4;18373:5;18369:16;18409:4;18400:7;18397:17;18394:43;;18417:18;;:::i;:::-;18466:1;18453:15;;18299:175;-1:-1:-1;;18299:175:228:o;18479:604::-;18788:6;18777:9;18770:25;18831:3;18826:2;18815:9;18811:18;18804:31;18751:4;18858:57;18910:3;18899:9;18895:19;18887:6;18858:57;:::i;:::-;18963:4;18955:6;18951:17;18946:2;18935:9;18931:18;18924:45;19017:9;19009:6;19005:22;19000:2;18989:9;18985:18;18978:50;19045:32;19070:6;19062;19045:32;:::i;:::-;19037:40;18479:604;-1:-1:-1;;;;;;;18479:604:228:o;19415:128::-;19482:9;;;19503:11;;;19500:37;;;19517:18;;:::i;19548:168::-;19621:9;;;19652;;19669:15;;;19663:22;;19649:37;19639:71;;19690:18;;:::i;19721:640::-;19972:6;19967:3;19960:19;19942:3;19998:2;20031;20026:3;20022:12;20063:6;20057:13;20128:2;20120:6;20116:15;20149:1;20159:175;20173:6;20170:1;20167:13;20159:175;;;20236:13;;20222:28;;20272:14;;;;20309:15;;;;20195:1;20188:9;20159:175;;;-1:-1:-1;20350:5:228;;19721:640;-1:-1:-1;;;;;;;19721:640:228:o;20366:184::-;-1:-1:-1;;;20415:1:228;20408:88;20515:4;20512:1;20505:15;20539:4;20536:1;20529:15;20555:511;20806:2;20795:9;20788:21;20769:4;20832:56;20884:2;20873:9;20869:18;20861:6;20832:56;:::i;:::-;20936:14;20928:6;20924:27;20919:2;20908:9;20904:18;20897:55;21000:9;20992:6;20988:22;20983:2;20972:9;20968:18;20961:50;21028:32;21053:6;21045;21028:32;:::i;21071:616::-;21382:6;21371:9;21364:25;21425:3;21420:2;21409:9;21405:18;21398:31;21345:4;21452:57;21504:3;21493:9;21489:19;21481:6;21452:57;:::i;:::-;21557:14;21549:6;21545:27;21540:2;21529:9;21525:18;21518:55;21621:9;21613:6;21609:22;21604:2;21593:9;21589:18;21582:50;21649:32;21674:6;21666;21649:32;:::i;21692:925::-;22141:66;22133:6;22129:79;22124:3;22117:92;22099:3;22228;22260:2;22256:1;22251:3;22247:11;22240:23;22292:6;22286:13;22308:74;22375:6;22371:1;22366:3;22362:11;22355:4;22347:6;22343:17;22308:74;:::i;:::-;22410:6;22405:3;22401:16;22391:26;;22445:2;22441:1;22437:2;22433:10;22426:22;22479:6;22473:13;22457:29;;22495:75;22561:8;22557:1;22553:2;22549:10;22542:4;22534:6;22530:17;22495:75;:::i;:::-;22590:17;22609:1;22586:25;;21692:925;-1:-1:-1;;;;;21692:925:228:o;22622:339::-;22799:2;22788:9;22781:21;22762:4;22819:44;22859:2;22848:9;22844:18;22836:6;22819:44;:::i;:::-;22811:52;;-1:-1:-1;;;;;22903:6:228;22899:55;22894:2;22883:9;22879:18;22872:83;22622:339;;;;;:::o;22966:287::-;23095:3;23133:6;23127:13;23149:66;23208:6;23203:3;23196:4;23188:6;23184:17;23149:66;:::i;:::-;23231:16;;;;;22966:287;-1:-1:-1;;22966:287:228:o;23258:690::-;23593:3;23582:9;23575:22;23556:4;23620:57;23672:3;23661:9;23657:19;23649:6;23620:57;:::i;:::-;23725:9;23717:6;23713:22;23708:2;23697:9;23693:18;23686:50;23759:32;23784:6;23776;23759:32;:::i;:::-;23745:46;;23827:6;23822:2;23811:9;23807:18;23800:34;23882:9;23874:6;23870:22;23865:2;23854:9;23850:18;23843:50;23910:32;23935:6;23927;23910:32;:::i;23953:899::-;24409:6;24398:9;24391:25;24452:3;24447:2;24436:9;24432:18;24425:31;24372:4;24479:57;24531:3;24520:9;24516:19;24508:6;24479:57;:::i;:::-;24584:9;24576:6;24572:22;24567:2;24556:9;24552:18;24545:50;24618:32;24643:6;24635;24618:32;:::i;:::-;24604:46;;24686:6;24681:2;24670:9;24666:18;24659:34;24742:9;24734:6;24730:22;24724:3;24713:9;24709:19;24702:51;24770:32;24795:6;24787;24770:32;:::i;:::-;24762:40;;;24839:6;24833:3;24822:9;24818:19;24811:35;23953:899;;;;;;;;;:::o;25076:464::-;25323:66;25315:6;25311:79;25300:9;25293:98;25427:6;25422:2;25411:9;25407:18;25400:34;25470:2;25465;25454:9;25450:18;25443:30;25274:4;25490:44;25530:2;25519:9;25515:18;25507:6;25490:44;:::i;25545:174::-;25612:12;25644:10;;;25656;;;25640:27;;25679:11;;;25676:37;;;25693:18;;:::i;:::-;25676:37;25545:174;;;;:::o;26371:901::-;26796:6;26785:9;26778:25;26839:3;26834:2;26823:9;26819:18;26812:31;26759:4;26866:57;26918:3;26907:9;26903:19;26895:6;26866:57;:::i;:::-;26971:4;26959:17;;26954:2;26939:18;;26932:45;26996:12;27044:15;;;27039:2;27024:18;;27017:43;27097:15;;27091:3;27076:19;;27069:44;27144:3;27129:19;;27122:35;;;27194:22;;;27188:3;27173:19;;27166:51;27234:32;27198:6;27251;27234:32;:::i;:::-;27226:40;26371:901;-1:-1:-1;;;;;;;;;;26371:901:228:o;27277:788::-;27642:3;27631:9;27624:22;27605:4;27669:57;27721:3;27710:9;27706:19;27698:6;27669:57;:::i;:::-;27774:4;27766:6;27762:17;27757:2;27746:9;27742:18;27735:45;27828:14;27820:6;27816:27;27811:2;27800:9;27796:18;27789:55;27892:12;27884:6;27880:25;27875:2;27864:9;27860:18;27853:53;27943:6;27937:3;27926:9;27922:19;27915:35;27999:9;27991:6;27987:22;27981:3;27970:9;27966:19;27959:51;28027:32;28052:6;28044;28027:32;:::i;:::-;28019:40;27277:788;-1:-1:-1;;;;;;;;;27277:788:228:o;28330:530::-;28515:3;28553:6;28547:13;28569:66;28628:6;28623:3;28616:4;28608:6;28604:17;28569:66;:::i;:::-;28704:2;28700:15;;;;-1:-1:-1;;28696:88:228;28657:16;;;;28682:103;;;28812:2;28801:14;;28794:30;;;;28851:2;28840:14;;28330:530;-1:-1:-1;;28330:530:228:o;29149:359::-;29352:2;29341:9;29334:21;29315:4;29372:44;29412:2;29401:9;29397:18;29389:6;29372:44;:::i;:::-;29447:2;29432:18;;29425:34;;;;-1:-1:-1;29490:2:228;29475:18;29468:34;29364:52;29149:359;-1:-1:-1;29149:359:228:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentAvailableLevel(uint256)":"1ecb393f","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c\",\"dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x7834b231d52ef04eb87b4761370bcf88eb0c52631c0ff6ee85206c0db3224366\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51b55193bdcbf73603b110402cd21c6a0aa6b6f6b5a726ff8f971613d637a7ec\",\"dweb:/ipfs/QmS9qHiN8ncErnZGYj7e9HWDhpFBEhTCDpwtkdFghriZTi\"]},\"src/utils.sol\":{\"keccak256\":\"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57\",\"dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059","urls":["bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c","dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0x7834b231d52ef04eb87b4761370bcf88eb0c52631c0ff6ee85206c0db3224366","urls":["bzz-raw://51b55193bdcbf73603b110402cd21c6a0aa6b6f6b5a726ff8f971613d637a7ec","dweb:/ipfs/QmS9qHiN8ncErnZGYj7e9HWDhpFBEhTCDpwtkdFghriZTi"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc","urls":["bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57","dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q"],"license":"MIT"}},"version":1},"id":211} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061497d806100206000396000f3fe6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea2646970667358221220051bc834708e24c962533671ce7dfc8684d60a0ba120aa18f2c998d413db9df964736f6c63430008180033","sourceMap":"1812:6250:212:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea2646970667358221220051bc834708e24c962533671ce7dfc8684d60a0ba120aa18f2c998d413db9df964736f6c63430008180033","sourceMap":"1812:6250:212:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:144;;;;;;;;;;-1:-1:-1;2973:144:212;;;;;:::i;:::-;3106:2;3082:26;;2973:144;;;;-1:-1:-1;;;;;363:55:230;;;345:74;;333:2;318:18;2973:144:212;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:230;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:230;7936:124:212;;;;;;;;;;-1:-1:-1;7936:124:212;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;4111:837:212:-;;;;;;;;;;-1:-1:-1;4111:837:212;;;;;:::i;:::-;;:::i;:::-;;;4284:25:230;;;4272:2;4257:18;4111:837:212;4138:177:230;6106:492:212;;;;;;;;;;-1:-1:-1;6106:492:212;;;;;:::i;:::-;;:::i;1989:129::-;;;;;;;;;;-1:-1:-1;1989:129:212;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1853:130:212;;;;;;;;;;-1:-1:-1;1853:130:212;;;;;:::i;:::-;;:::i;3123:413::-;;;;;;;;;;-1:-1:-1;3123:413:212;;;;;:::i;:::-;;:::i;4954:545::-;;;;;;:::i;:::-;;:::i;:::-;;2460:266;;;;;;;;;;-1:-1:-1;2460:266:212;;;;;:::i;:::-;;:::i;3542:212::-;;;;;;;;;;-1:-1:-1;3542:212:212;;;;;:::i;:::-;;:::i;6604:219::-;;;;;;;;;;-1:-1:-1;6604:219:212;;;;;:::i;:::-;;:::i;5505:595::-;;;;;;;;;;-1:-1:-1;5505:595:212;;;;;:::i;:::-;;:::i;7669:125::-;;;;;;;;;;-1:-1:-1;7669:125:212;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7800:130:212:-;;;;;;;;;;-1:-1:-1;7800:130:212;;;;;:::i;:::-;;:::i;2732:143::-;;;;;;;;;;-1:-1:-1;2732:143:212;;;;;:::i;:::-;2830:37;;;2732:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7936:124:212:-;7996:16;;:::i;:::-;8031:22;8041:11;8031:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;4111:837:212:-;4221:19;4256:24;4283:28;:26;:28::i;:::-;4256:55;-1:-1:-1;4348:16:212;4329:35;;4321:83;;;;-1:-1:-1;;;4321:83:212;;6255:2:230;4321:83:212;;;6237:21:230;6294:2;6274:18;;;6267:30;6333:34;6313:18;;;6306:62;6404:5;6384:18;;;6377:33;6427:19;;4321:83:212;;;;;;;;;4421:8;:6;:8::i;:::-;-1:-1:-1;;;;;4414:21:212;;4449:37;4465:20;4449:15;:37::i;:::-;4488:65;;-1:-1:-1;;;;;6649:55:230;;4488:65:212;;;6631:74:230;6721:18;;;6714:34;;;6604:18;;4488:65:212;;;-1:-1:-1;;4488:65:212;;;;;;;;;;;;;;;;;;;;4414:149;;4488:65;4414:149;;;;;;;;;4488:65;4414:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4414:149:212;;;;;;;;;;;;:::i;:::-;;4587:35;4605:16;4587:17;:35::i;:::-;4573:49;;4632:41;4652:11;4665:7;4632:19;:41::i;:::-;4683:52;4705:11;4718:16;4683:21;:52::i;:::-;4754:25;4774:4;4754:19;:25::i;:::-;4753:26;4745:58;;;;-1:-1:-1;;;4745:58:212;;8662:2:230;4745:58:212;;;8644:21:230;8701:2;8681:18;;;8674:30;8740:21;8720:18;;;8713:49;8779:18;;4745:58:212;8460:343:230;4745:58:212;4813:31;4833:4;4839;4813:19;:31::i;:::-;4854:37;4873:11;4886:4;4854:18;:37::i;:::-;4901:40;4914:16;4932:8;4901:12;:40::i;:::-;4246:702;4111:837;;;;;:::o;6106:492::-;6181:20;6231:14;6242:2;6231:10;:14::i;:::-;6217:10;:28;6213:379;;-1:-1:-1;6276:2:212;6106:492;;;:::o;6213:379::-;6314:9;6309:273;6329:2;6325:1;:6;6309:273;;;6373:10;6356:13;6367:1;6356:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;6407:10:212;6387:17;6398:5;:1;6402;6398:5;:::i;:::-;6387:10;:17::i;:::-;:30;6356:61;6352:155;;;6456:5;:1;6460;6456:5;:::i;:::-;6441:20;;6483:5;;6352:155;6546:3;;;;:::i;:::-;;;;6309:273;;;;6106:492;;;:::o;1989:129::-;2049:14;2084:27;2099:11;2084:14;:27::i;1853:130::-;1912:13;1945:31;1964:11;1945:18;:31::i;3123:413::-;3193:4;3209:20;3232:28;3248:11;3106:2;3082:26;;2973:144;3232:28;3209:51;-1:-1:-1;2830:37:212;;;3270:15;3359:17;:15;:17::i;:::-;-1:-1:-1;;;;;3359:25:212;;3385:7;3359:34;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;3359:34:212;;;;;;;;;;;;;;;;;;;-1:-1:-1;3359:34:212;;;;;;;;-1:-1:-1;;3359:34:212;;;;;;;;;;;;:::i;:::-;;;3355:135;;;3436:17;:15;:17::i;:::-;-1:-1:-1;;;;;3436:25:212;;3462:7;3436:34;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;3436:34:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3426:44;;3394:87;3355:135;3517:12;-1:-1:-1;;;;;3506:23:212;:7;-1:-1:-1;;;;;3506:23:212;;3499:30;;;;;3123:413;;;:::o;4954:545::-;5069:33;5090:11;5069:20;:33::i;:::-;5068:34;5060:90;;;;-1:-1:-1;;;5060:90:212;;9785:2:230;5060:90:212;;;9767:21:230;9824:2;9804:18;;;9797:30;9863:34;9843:18;;;9836:62;9934:13;9914:18;;;9907:41;9965:19;;5060:90:212;9583:407:230;5060:90:212;5168:21;5177:11;5168:8;:21::i;:::-;5160:53;;;;-1:-1:-1;;;5160:53:212;;10197:2:230;5160:53:212;;;10179:21:230;10236:2;10216:18;;;10209:30;10275:21;10255:18;;;10248:49;10314:18;;5160:53:212;9995:343:230;5160:53:212;5223:26;5291:34;5306:11;5319:5;5291:14;:34::i;:::-;5382:110;5435:16;5453:11;5477;5466:23;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;5466:23:212;;;;-1:-1:-1;;5466:23:212;;;;;;;;;;5400:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5400:91:212;;;;;;;;;;;;;;;;;;;;5382:17;:110::i;:::-;;5050:449;4954:545;;;:::o;2460:266::-;2534:19;2565:20;2588:17;:15;:17::i;:::-;-1:-1:-1;;;;;2588:25:212;;2614:16;2588:43;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;2588:43:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2697:2;2663:36;-1:-1:-1;;2663:36:212;:55;;;;;;-1:-1:-1;;2460:266:212:o;3542:212::-;3621:4;3644:31;3663:11;3644:18;:31::i;:::-;:103;;;;;3742:5;-1:-1:-1;;;;;3679:68:212;:17;:15;:17::i;:::-;:59;;;;;2830:37;;;3679:59;;;4284:25:230;-1:-1:-1;;;;;3679:25:212;;;;;;;4257:18:230;;3679:59:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3679:68:212;;3644:103;3637:110;3542:212;-1:-1:-1;;;3542:212:212:o;6604:219::-;6698:21;6707:11;6698:8;:21::i;:::-;6690:60;;;;-1:-1:-1;;;6690:60:212;;10974:2:230;6690:60:212;;;10956:21:230;11013:2;10993:18;;;10986:30;11052:28;11032:18;;;11025:56;11098:18;;6690:60:212;10772:350:230;6690:60:212;6760:56;2830:37;;;6807:8;6760:12;:56::i;:::-;6604:219;;:::o;5505:595::-;5570:21;5579:11;5570:8;:21::i;:::-;5562:52;;;;-1:-1:-1;;;5562:52:212;;11329:2:230;5562:52:212;;;11311:21:230;11368:2;11348:18;;;11341:30;11407:20;11387:18;;;11380:48;11445:18;;5562:52:212;11127:342:230;5562:52:212;5633:33;5654:11;5633:20;:33::i;:::-;5632:34;5624:72;;;;-1:-1:-1;;;5624:72:212;;11676:2:230;5624:72:212;;;11658:21:230;11715:2;11695:18;;;11688:30;11754:27;11734:18;;;11727:55;11799:18;;5624:72:212;11474:349:230;5624:72:212;5706:26;5735:22;5745:11;5735:9;:22::i;:::-;5785:1;5767:15;;;:19;5825:23;;;;5796:19;;;:53;5706:51;-1:-1:-1;5859:33:212;5869:11;5706:51;5859:9;:33::i;:::-;5909:8;:6;:8::i;:::-;5902:51;;;;;;;;12028:25:230;;;5945:7:212;12069:18:230;;;12062:34;-1:-1:-1;;;;;5902:29:212;;;;;;;12001:18:230;;5902:51:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:8;:6;:8::i;:::-;-1:-1:-1;;;;;5993:38:212;;6032:11;5993:51;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;5993:51:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6054:39;6075:11;6088:4;6054:20;:39::i;7669:125::-;7729:7;7755:32;7775:11;7755:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7800:130:212:-;7865:7;7891:32;7911:11;7891:19;:32::i;13270:402:195:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:195;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:195:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;7003:347:212:-;7059:7;7078:25;7106:42;:40;:42::i;:::-;7078:70;;7158:24;7185:50;7213:17;7233:1;7185:19;:50::i;:::-;:54;;7238:1;7185:54;:::i;:::-;7158:81;;7249:61;7269:17;7288:1;7292:16;7249:19;:61::i;1157:186:221:-;1215:10;1240:100;1275:15;1303:9;1320:18;1240:25;:100::i;4730:249:179:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:179;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;12445:2:230;12441:15;;;;-1:-1:-1;;12437:88:230;12425:101;;12551:2;12542:12;;12296:264;4934:25:179;;;;-1:-1:-1;;4934:25:179;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:179;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;2594:287:190;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:190;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:190:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:190;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12903:14:230;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4085:25:190;;;;-1:-1:-1;;4085:25:190;;;;;;;;;1198:66;4034:26;:91::i;5941:246:179:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:179;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;6829:168:212;6911:79;6932:38;6949:20;6932:16;:38::i;:::-;6972:7;6981:8;6911:20;:79::i;3297:296:184:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:184;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:184;:64::i;5624:288:195:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:195;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:195;;;;5878:29;;;;;;;;:::i;5306:279:179:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:179;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2279:175:212:-;2329:30;2404:42;:40;:42::i;6512:295:179:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:179;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;7496:167:212:-;7558:4;7597:17;:15;:17::i;:::-;:59;;;;;2830:37;;;7597:59;;;4284:25:230;-1:-1:-1;;;;;7597:25:212;;;;;;;4257:18:230;;7597:59:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7581:75:212;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7581:75:212;;;7496:167;-1:-1:-1;;7496:167:212:o;6279:248:195:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:195;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;13290:3:230;13286:16;;;;13304:66;13282:89;13270:102;;13397:1;13388:11;;13145:260;6477:30:195;;;;-1:-1:-1;;6477:30:195;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13966:98:230;13939:18;;3713:52:107;13822:248:230;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;15666:552:195:-;15737:24;15764:207;15784:6;:15;;;15807:6;:14;;;15829:6;:12;;;15849:6;:19;;;15876:6;:20;;;15904:6;:16;;;15928:6;:17;;;15953:6;:12;;;15764;:207::i;:::-;16075:16;;;16089:1;16075:16;;;;;;;;;15737:234;;-1:-1:-1;15978:30:195;;16014:25;;15978:30;;16075:16;;;;;;;;;;;;-1:-1:-1;16075:16:195;16046:45;;16112:8;16097:9;16107:1;16097:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;16127:86;1310:66;16159:9;16170:11;16183:15;16200:12;16127:21;:86::i;:::-;15731:487;;;;15666:552;;:::o;7183:249:179:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:179;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12903:14:230;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4071:290:179;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:195:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:195;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:195:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:195;;;;-1:-1:-1;17879:370:195;;;-1:-1:-1;;;;;17879:370:195:o;5147:257:196:-;5258:16;;;5199:22;5258:16;;;;;;;;;5281:13;5297:64;1269:66;5229:45;5345:1;1398:66;5297:26;:64::i;:::-;5375:23;;;5147:257;-1:-1:-1;;;5147:257:196:o;2640:388:181:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:181;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:181;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:181;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:181:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:181;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:181;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;4646:27:181;;;;-1:-1:-1;;4646:27:181;;;;;;;;;-1:-1:-1;;;4595:26:181;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;18916:362:195:-;19145:12;19189:8;19199:7;19208:5;19215:12;19229:13;19244:9;19255:10;19267:5;19172:101;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19165:108;;18916:362;;;;;;;;;;:::o;6458:480:46:-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;6692:242::-;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;1836:227::-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:195:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:195;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:195;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:195;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:195;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:195;-1:-1:-1;;16961:760:195:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;12066:286:45;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4015:652:45;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;26250:12:230;26289:15;;;45340:92:45;;;26271:34:230;26341:15;;;26321:18;;;26314:43;26393:15;;26373:18;;;26366:43;26213:18;;45340:92:45;26044:371:230;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;26593:25:230;;;26666:12;26654:25;;26634:18;;;26627:53;26566:18;;45581:74:45;26420:266:230;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;28531:79:230;;2092:30:124;;;28519:92:230;2092:30:124;;28627:12:230;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;51249:282:45:-;51494:30;;;;;;29374:19:230;;;29409:12;;;29402:28;;;51337:7:45;;29446:12:230;;51494:30:45;29185:279:230;1489:2340:44;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:230;;;4257:18;;7664:67:24;4138:177:230;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:190;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:190;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:230:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:230;;14:180;-1:-1:-1;14:180:230:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:230;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:230;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1208:200;1148:266;:::o;1419:777::-;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:230;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:230;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:230;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:230:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:230;3037:15;-1:-1:-1;;3033:88:230;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:230:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:230;3925:18;;3912:32;;-1:-1:-1;3995:2:230;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4687:235::-;4833:2;4818:18;;4845:37;4875:6;4845:37;:::i;:::-;4891:25;;;4687:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:315::-;5406:6;5414;5467:2;5455:9;5446:7;5442:23;5438:32;5435:52;;;5483:1;5480;5473:12;5435:52;5519:9;5506:23;5496:33;;5579:2;5568:9;5564:18;5551:32;5592:31;5617:5;5592:31;:::i;:::-;5642:5;5632:15;;;5338:315;;;;;:::o;5658:390::-;5736:6;5744;5797:2;5785:9;5776:7;5772:23;5768:32;5765:52;;;5813:1;5810;5803:12;5765:52;5849:9;5836:23;5826:33;;5910:2;5899:9;5895:18;5882:32;5937:18;5929:6;5926:30;5923:50;;;5969:1;5966;5959:12;5923:50;5992;6034:7;6025:6;6014:9;6010:22;5992:50;:::i;:::-;5982:60;;;5658:390;;;;;:::o;6759:250::-;6844:1;6854:113;6868:6;6865:1;6862:13;6854:113;;;6944:11;;;6938:18;6925:11;;;6918:39;6890:2;6883:10;6854:113;;;-1:-1:-1;;7001:1:230;6983:16;;6976:27;6759:250::o;7014:329::-;7055:3;7093:5;7087:12;7120:6;7115:3;7108:19;7136:76;7205:6;7198:4;7193:3;7189:14;7182:4;7175:5;7171:16;7136:76;:::i;:::-;7257:2;7245:15;-1:-1:-1;;7241:88:230;7232:98;;;;7332:4;7228:109;;7014:329;-1:-1:-1;;7014:329:230:o;7348:320::-;7555:6;7544:9;7537:25;7598:2;7593;7582:9;7578:18;7571:30;7518:4;7618:44;7658:2;7647:9;7643:18;7635:6;7618:44;:::i;7673:442::-;7726:5;7779:3;7772:4;7764:6;7760:17;7756:27;7746:55;;7797:1;7794;7787:12;7746:55;7826:6;7820:13;7857:49;7873:32;7902:2;7873:32;:::i;7857:49::-;7931:2;7922:7;7915:19;7977:3;7970:4;7965:2;7957:6;7953:15;7949:26;7946:35;7943:55;;;7994:1;7991;7984:12;7943:55;8007:77;8081:2;8074:4;8065:7;8061:18;8054:4;8046:6;8042:17;8007:77;:::i;8120:335::-;8199:6;8252:2;8240:9;8231:7;8227:23;8223:32;8220:52;;;8268:1;8265;8258:12;8220:52;8301:9;8295:16;8334:18;8326:6;8323:30;8320:50;;;8366:1;8363;8356:12;8320:50;8389:60;8441:7;8432:6;8421:9;8417:22;8389:60;:::i;8808:184::-;-1:-1:-1;;;8857:1:230;8850:88;8957:4;8954:1;8947:15;8981:4;8978:1;8971:15;8997:125;9062:9;;;9083:10;;;9080:36;;;9096:18;;:::i;9127:195::-;9166:3;-1:-1:-1;;9190:5:230;9187:77;9184:103;;9267:18;;:::i;:::-;-1:-1:-1;9314:1:230;9303:13;;9127:195::o;9327:251::-;9397:6;9450:2;9438:9;9429:7;9425:23;9421:32;9418:52;;;9466:1;9463;9456:12;9418:52;9498:9;9492:16;9517:31;9542:5;9517:31;:::i;10343:424::-;10565:6;10554:9;10547:25;10581:37;10611:6;10581:37;:::i;:::-;10654:6;10649:2;10638:9;10634:18;10627:34;10697:2;10692;10681:9;10677:18;10670:30;10528:4;10717:44;10757:2;10746:9;10742:18;10734:6;10717:44;:::i;12107:184::-;-1:-1:-1;;;12156:1:230;12149:88;12256:4;12253:1;12246:15;12280:4;12277:1;12270:15;13410:407;13493:5;13533;13527:12;13575:4;13568:5;13564:16;13558:23;13600:66;13692:2;13688;13684:11;13675:20;;13718:1;13710:6;13707:13;13704:107;;;13798:2;13792;13782:6;13779:1;13775:14;13772:1;13768:22;13764:31;13760:2;13756:40;13752:49;13743:58;;13704:107;;;;13410:407;;;:::o;14075:439::-;14128:3;14166:5;14160:12;14193:6;14188:3;14181:19;14219:4;14248;14243:3;14239:14;14232:21;;14287:4;14280:5;14276:16;14310:1;14320:169;14334:6;14331:1;14328:13;14320:169;;;14395:13;;14383:26;;14429:12;;;;14464:15;;;;14356:1;14349:9;14320:169;;;-1:-1:-1;14505:3:230;;14075:439;-1:-1:-1;;;;;14075:439:230:o;14519:468::-;14819:6;14808:9;14801:25;14862:2;14857;14846:9;14842:18;14835:30;14782:4;14882:56;14934:2;14923:9;14919:18;14911:6;14882:56;:::i;:::-;14874:64;;14974:6;14969:2;14958:9;14954:18;14947:34;14519:468;;;;;;:::o;14992:655::-;15134:6;15142;15150;15203:2;15191:9;15182:7;15178:23;15174:32;15171:52;;;15219:1;15216;15209:12;15171:52;15252:9;15246:16;15281:18;15322:2;15314:6;15311:14;15308:34;;;15338:1;15335;15328:12;15308:34;15361:60;15413:7;15404:6;15393:9;15389:22;15361:60;:::i;:::-;15351:70;;15461:2;15450:9;15446:18;15440:25;15430:35;;15511:2;15500:9;15496:18;15490:25;15474:41;;15540:2;15530:8;15527:16;15524:36;;;15556:1;15553;15546:12;15524:36;;15579:62;15633:7;15622:8;15611:9;15607:24;15579:62;:::i;15652:709::-;16022:6;16011:9;16004:25;16065:3;16060:2;16049:9;16045:18;16038:31;15985:4;16092:57;16144:3;16133:9;16129:19;16121:6;16092:57;:::i;:::-;16197:4;16189:6;16185:17;16180:2;16169:9;16165:18;16158:45;16251:9;16243:6;16239:22;16234:2;16223:9;16219:18;16212:50;16279:32;16304:6;16296;16279:32;:::i;:::-;16271:40;;;16348:6;16342:3;16331:9;16327:19;16320:35;15652:709;;;;;;;;:::o;16366:548::-;16690:6;16679:9;16672:25;16733:3;16728:2;16717:9;16713:18;16706:31;16653:4;16754:57;16806:3;16795:9;16791:19;16783:6;16754:57;:::i;:::-;16859:4;16847:17;;;;16842:2;16827:18;;16820:45;-1:-1:-1;16896:2:230;16881:18;16874:34;16746:65;16366:548;-1:-1:-1;;16366:548:230:o;16919:184::-;16989:6;17042:2;17030:9;17021:7;17017:23;17013:32;17010:52;;;17058:1;17055;17048:12;17010:52;-1:-1:-1;17081:16:230;;16919:184;-1:-1:-1;16919:184:230:o;17108:707::-;17455:6;17450:3;17443:19;17492:6;17487:2;17482:3;17478:12;17471:28;17508:37;17538:6;17508:37;:::i;:::-;17579:3;17575:16;;;;17570:2;17561:12;;17554:38;17617:2;17608:12;;17601:28;;;;17654:2;17645:12;;17638:28;;;;17691:3;17682:13;;17675:29;17729:3;17720:13;;17713:29;17767:3;17758:13;;17751:29;17805:3;17796:13;;17108:707;-1:-1:-1;;17108:707:230:o;17820:794::-;18215:6;18204:9;18197:25;18258:3;18253:2;18242:9;18238:18;18231:31;18178:4;18285:57;18337:3;18326:9;18322:19;18314:6;18285:57;:::i;:::-;18390:9;18382:6;18378:22;18373:2;18362:9;18358:18;18351:50;18424:32;18449:6;18441;18424:32;:::i;:::-;18410:46;;18492:6;18487:2;18476:9;18472:18;18465:34;18548:9;18540:6;18536:22;18530:3;18519:9;18515:19;18508:51;18576:32;18601:6;18593;18576:32;:::i;:::-;18568:40;17820:794;-1:-1:-1;;;;;;;;17820:794:230:o;18619:175::-;18656:3;18700:4;18693:5;18689:16;18729:4;18720:7;18717:17;18714:43;;18737:18;;:::i;:::-;18786:1;18773:15;;18619:175;-1:-1:-1;;18619:175:230:o;18799:604::-;19108:6;19097:9;19090:25;19151:3;19146:2;19135:9;19131:18;19124:31;19071:4;19178:57;19230:3;19219:9;19215:19;19207:6;19178:57;:::i;:::-;19283:4;19275:6;19271:17;19266:2;19255:9;19251:18;19244:45;19337:9;19329:6;19325:22;19320:2;19309:9;19305:18;19298:50;19365:32;19390:6;19382;19365:32;:::i;:::-;19357:40;18799:604;-1:-1:-1;;;;;;;18799:604:230:o;19735:128::-;19802:9;;;19823:11;;;19820:37;;;19837:18;;:::i;19868:168::-;19941:9;;;19972;;19989:15;;;19983:22;;19969:37;19959:71;;20010:18;;:::i;20041:640::-;20292:6;20287:3;20280:19;20262:3;20318:2;20351;20346:3;20342:12;20383:6;20377:13;20448:2;20440:6;20436:15;20469:1;20479:175;20493:6;20490:1;20487:13;20479:175;;;20556:13;;20542:28;;20592:14;;;;20629:15;;;;20515:1;20508:9;20479:175;;;-1:-1:-1;20670:5:230;;20041:640;-1:-1:-1;;;;;;;20041:640:230:o;20686:184::-;-1:-1:-1;;;20735:1:230;20728:88;20835:4;20832:1;20825:15;20859:4;20856:1;20849:15;20875:511;21126:2;21115:9;21108:21;21089:4;21152:56;21204:2;21193:9;21189:18;21181:6;21152:56;:::i;:::-;21256:14;21248:6;21244:27;21239:2;21228:9;21224:18;21217:55;21320:9;21312:6;21308:22;21303:2;21292:9;21288:18;21281:50;21348:32;21373:6;21365;21348:32;:::i;21391:616::-;21702:6;21691:9;21684:25;21745:3;21740:2;21729:9;21725:18;21718:31;21665:4;21772:57;21824:3;21813:9;21809:19;21801:6;21772:57;:::i;:::-;21877:14;21869:6;21865:27;21860:2;21849:9;21845:18;21838:55;21941:9;21933:6;21929:22;21924:2;21913:9;21909:18;21902:50;21969:32;21994:6;21986;21969:32;:::i;22012:925::-;22461:66;22453:6;22449:79;22444:3;22437:92;22419:3;22548;22580:2;22576:1;22571:3;22567:11;22560:23;22612:6;22606:13;22628:74;22695:6;22691:1;22686:3;22682:11;22675:4;22667:6;22663:17;22628:74;:::i;:::-;22730:6;22725:3;22721:16;22711:26;;22765:2;22761:1;22757:2;22753:10;22746:22;22799:6;22793:13;22777:29;;22815:75;22881:8;22877:1;22873:2;22869:10;22862:4;22854:6;22850:17;22815:75;:::i;:::-;22910:17;22929:1;22906:25;;22012:925;-1:-1:-1;;;;;22012:925:230:o;22942:339::-;23119:2;23108:9;23101:21;23082:4;23139:44;23179:2;23168:9;23164:18;23156:6;23139:44;:::i;:::-;23131:52;;-1:-1:-1;;;;;23223:6:230;23219:55;23214:2;23203:9;23199:18;23192:83;22942:339;;;;;:::o;23286:287::-;23415:3;23453:6;23447:13;23469:66;23528:6;23523:3;23516:4;23508:6;23504:17;23469:66;:::i;:::-;23551:16;;;;;23286:287;-1:-1:-1;;23286:287:230:o;23578:690::-;23913:3;23902:9;23895:22;23876:4;23940:57;23992:3;23981:9;23977:19;23969:6;23940:57;:::i;:::-;24045:9;24037:6;24033:22;24028:2;24017:9;24013:18;24006:50;24079:32;24104:6;24096;24079:32;:::i;:::-;24065:46;;24147:6;24142:2;24131:9;24127:18;24120:34;24202:9;24194:6;24190:22;24185:2;24174:9;24170:18;24163:50;24230:32;24255:6;24247;24230:32;:::i;24273:899::-;24729:6;24718:9;24711:25;24772:3;24767:2;24756:9;24752:18;24745:31;24692:4;24799:57;24851:3;24840:9;24836:19;24828:6;24799:57;:::i;:::-;24904:9;24896:6;24892:22;24887:2;24876:9;24872:18;24865:50;24938:32;24963:6;24955;24938:32;:::i;:::-;24924:46;;25006:6;25001:2;24990:9;24986:18;24979:34;25062:9;25054:6;25050:22;25044:3;25033:9;25029:19;25022:51;25090:32;25115:6;25107;25090:32;:::i;:::-;25082:40;;;25159:6;25153:3;25142:9;25138:19;25131:35;24273:899;;;;;;;;;:::o;25396:464::-;25643:66;25635:6;25631:79;25620:9;25613:98;25747:6;25742:2;25731:9;25727:18;25720:34;25790:2;25785;25774:9;25770:18;25763:30;25594:4;25810:44;25850:2;25839:9;25835:18;25827:6;25810:44;:::i;25865:174::-;25932:12;25964:10;;;25976;;;25960:27;;25999:11;;;25996:37;;;26013:18;;:::i;:::-;25996:37;25865:174;;;;:::o;26691:901::-;27116:6;27105:9;27098:25;27159:3;27154:2;27143:9;27139:18;27132:31;27079:4;27186:57;27238:3;27227:9;27223:19;27215:6;27186:57;:::i;:::-;27291:4;27279:17;;27274:2;27259:18;;27252:45;27316:12;27364:15;;;27359:2;27344:18;;27337:43;27417:15;;27411:3;27396:19;;27389:44;27464:3;27449:19;;27442:35;;;27514:22;;;27508:3;27493:19;;27486:51;27554:32;27518:6;27571;27554:32;:::i;:::-;27546:40;26691:901;-1:-1:-1;;;;;;;;;;26691:901:230:o;27597:788::-;27962:3;27951:9;27944:22;27925:4;27989:57;28041:3;28030:9;28026:19;28018:6;27989:57;:::i;:::-;28094:4;28086:6;28082:17;28077:2;28066:9;28062:18;28055:45;28148:14;28140:6;28136:27;28131:2;28120:9;28116:18;28109:55;28212:12;28204:6;28200:25;28195:2;28184:9;28180:18;28173:53;28263:6;28257:3;28246:9;28242:19;28235:35;28319:9;28311:6;28307:22;28301:3;28290:9;28286:19;28279:51;28347:32;28372:6;28364;28347:32;:::i;:::-;28339:40;27597:788;-1:-1:-1;;;;;;;;;27597:788:230:o;28650:530::-;28835:3;28873:6;28867:13;28889:66;28948:6;28943:3;28936:4;28928:6;28924:17;28889:66;:::i;:::-;29024:2;29020:15;;;;-1:-1:-1;;29016:88:230;28977:16;;;;29002:103;;;29132:2;29121:14;;29114:30;;;;29171:2;29160:14;;28650:530;-1:-1:-1;;28650:530:230:o;29469:359::-;29672:2;29661:9;29654:21;29635:4;29692:44;29732:2;29721:9;29717:18;29709:6;29692:44;:::i;:::-;29767:2;29752:18;;29745:34;;;;-1:-1:-1;29810:2:230;29795:18;29788:34;29684:52;29469:359;-1:-1:-1;29469:359:230:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentAvailableLevel(uint256)":"1ecb393f","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","isValidOwner(bytes32,address)":"9b63ec05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c\",\"dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465\",\"dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN\"]},\"src/utils.sol\":{\"keccak256\":\"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57\",\"dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"isValidOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059","urls":["bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c","dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488","urls":["bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465","dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc","urls":["bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57","dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q"],"license":"MIT"}},"version":1},"id":212} \ No newline at end of file diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json b/packages/contracts/out/IWorld.sol/IWorld.abi.json index 2178e955a..ff99256ba 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json @@ -34,6 +34,11 @@ "name": "critChanceBonus", "type": "int256", "internalType": "int256" + }, + { + "name": "classRestrictions", + "type": "uint8[]", + "internalType": "uint8[]" } ] }, @@ -138,6 +143,24 @@ ], "stateMutability": "view" }, + { + "type": "function", + "name": "UD__assignActionToCharacter", + "inputs": [ + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "actionId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__calculateGoldDrop", @@ -485,6 +508,24 @@ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "UD__equipAction", + "inputs": [ + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "actionId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__equipItems", @@ -1632,6 +1673,30 @@ ], "stateMutability": "view" }, + { + "type": "function", + "name": "UD__isValidOwner", + "inputs": [ + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "UD__isValidPvE", diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts index cef29a393..671df33ca 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts @@ -34,6 +34,11 @@ declare const abi: [ "name": "critChanceBonus", "type": "int256", "internalType": "int256" + }, + { + "name": "classRestrictions", + "type": "uint8[]", + "internalType": "uint8[]" } ] }, @@ -138,6 +143,24 @@ declare const abi: [ ], "stateMutability": "view" }, + { + "type": "function", + "name": "UD__assignActionToCharacter", + "inputs": [ + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "actionId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__calculateGoldDrop", @@ -485,6 +508,24 @@ declare const abi: [ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "UD__equipAction", + "inputs": [ + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "actionId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__equipItems", @@ -1632,6 +1673,30 @@ declare const abi: [ ], "stateMutability": "view" }, + { + "type": "function", + "name": "UD__isValidOwner", + "inputs": [ + { + "name": "characterId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "UD__isValidPvE", diff --git a/packages/contracts/out/IWorld.sol/IWorld.json b/packages/contracts/out/IWorld.sol/IWorld.json index 38fcf7418..3e49e5fa3 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.json +++ b/packages/contracts/out/IWorld.sol/IWorld.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"UD___calculateMagicAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD___calculatePhysicalAttack","inputs":[{"name":"attackStats","type":"tuple","internalType":"struct PhysicalAttackStats","components":[{"name":"bonusDamage","type":"int256","internalType":"int256"},{"name":"armorPenetration","type":"int256","internalType":"int256"},{"name":"attackModifierBonus","type":"int256","internalType":"int256"},{"name":"critChanceBonus","type":"int256","internalType":"int256"}]},{"name":"attackerId","type":"bytes32","internalType":"bytes32"},{"name":"defenderId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"damage","type":"int256","internalType":"int256"},{"name":"hit","type":"bool","internalType":"bool"},{"name":"crit","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__applyEquipmentBonuses","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"modifiedStats","type":"tuple","internalType":"struct AdjustedCombatStats","components":[{"name":"adjustedStrength","type":"uint256","internalType":"uint256"},{"name":"adjustedAgility","type":"uint256","internalType":"uint256"},{"name":"adjustedIntelligence","type":"uint256","internalType":"uint256"},{"name":"adjustedArmor","type":"uint256","internalType":"uint256"},{"name":"adjustedMaxHp","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__calculateGoldDrop","inputs":[{"name":"mobLevel","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dropAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canUse","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createAction","inputs":[{"name":"actionType","type":"uint8","internalType":"enum ActionType"},{"name":"actionStats","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"dropChance","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"dropChances","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropGold","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItem","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItems","inputs":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"characterIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__endTurn","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__executeCombat","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getArmorStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_ArmorStats","type":"tuple","internalType":"struct ArmorStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"armorModifier","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentItemsCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEncounter","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_encounterData","type":"tuple","internalType":"struct CombatEncounterData","components":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"},{"name":"currentTurn","type":"uint256","internalType":"uint256"},{"name":"maxTurns","type":"uint256","internalType":"uint256"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getLootManagerSystem","inputs":[],"outputs":[{"name":"_lootManager","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMobId","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMobPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMulticallContract","inputs":[],"outputs":[{"name":"_multicall","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"UD__getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getSpawnCounter","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct StarterItemsData","components":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"maxDamage","type":"uint256","internalType":"uint256"},{"name":"minDamage","type":"uint256","internalType":"uint256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isItemOwner","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"participants","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidPvE","inputs":[{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isValidPvE","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawnMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD___calculateMagicAttack()":"e0cac377","UD___calculatePhysicalAttack((int256,int256,int256,int256),bytes32,bytes32,uint256,uint256)":"fa760cc5","UD__applyEquipmentBonuses(bytes32)":"54f1f2db","UD__calculateGoldDrop(uint256,uint256)":"c3505171","UD__checkRequirements(bytes32,uint256)":"bf4dbebc","UD__createAction(uint8,bytes)":"c3344bd2","UD__createItem(uint8,uint256,uint256,bytes,string)":"c2647a81","UD__createItems(uint8[],uint256[],uint256[],bytes[],string[])":"8a2d4e05","UD__createMatch(uint8,bytes32[],bytes32[])":"3e602b01","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__dropGold(bytes32,uint256)":"fda0ce50","UD__dropItem(uint256,uint256,bytes32)":"88c571e1","UD__dropItems(uint256[],uint256[],bytes32[])":"e45cde14","UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"1f357129","UD__enterGame(bytes32)":"b968fa3a","UD__equipItems(bytes32,uint256[])":"2d9ac2be","UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"a0ba1f1e","UD__getArmorStats(uint256)":"e75aa93b","UD__getCharacterToken()":"49d8cf02","UD__getCharacterTokenId(bytes32)":"d97302d0","UD__getClass(bytes32)":"0ae6f9ab","UD__getCurrentAvailableLevel(uint256)":"d453e623","UD__getCurrentItemsCounter()":"4652f280","UD__getEncounter(bytes32)":"55faf03a","UD__getEntitiesAtPosition(uint16,uint16)":"d0f8a4f5","UD__getEntropy()":"b5c691c7","UD__getExperience(bytes32)":"a8b79e60","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getLootManagerSystem()":"f2cb96f2","UD__getMob(bytes32)":"5ac36570","UD__getMob(uint256)":"622834d0","UD__getMobId(bytes32)":"53d64640","UD__getMobPosition(bytes32)":"8b3f8277","UD__getMonsterStats(bytes32)":"e6c22e06","UD__getMonsterStats(uint256)":"91b22373","UD__getMulticallContract()":"71ce415d","UD__getName(bytes32)":"e902af7a","UD__getNpcStats(bytes32)":"a17a6b7f","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(bytes32)":"777c2caf","UD__getOwnerAddress(bytes32)":"4f10aabc","UD__getPlayerEntityId(uint256)":"02ee03fa","UD__getPythProvider()":"e24cefd9","UD__getSpawnCounter(bytes32)":"f4e1633b","UD__getStarterItems(uint8)":"b8bfeca1","UD__getStats(bytes32)":"14b13b0e","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isAtPosition(bytes32,uint16,uint16)":"f48a3972","UD__isEquipped(bytes32,uint256)":"7273e39a","UD__isItemOwner(uint256,address)":"b3634118","UD__isParticipant(address,bytes32)":"7868d715","UD__isParticipant(address,bytes32[])":"18853912","UD__isValidCharacterId(bytes32)":"fa1becc4","UD__isValidMob(bytes32)":"bace814a","UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)":"c6d5525b","UD__issueStarterItems(bytes32)":"f9d175ed","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(bytes32,uint16,uint16)":"d1138fa1","UD__rollStats(bytes32,bytes32,uint8)":"18f14781","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(bytes32)":"7e29a6f6","UD__spawnMob(uint256,uint16,uint16)":"15bc4248","UD__unequipItem(bytes32,uint256)":"7a190324","UD__updateTokenUri(bytes32,string)":"ecd73f84","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD__calculateGoldDrop\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dropAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dropChance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"dropChances\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UD__dropGold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__dropItem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getLootManagerSystem\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_lootManager\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getMulticallContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_multicall\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD___calculateMagicAttack"},{"inputs":[{"internalType":"struct PhysicalAttackStats","name":"attackStats","type":"tuple","components":[{"internalType":"int256","name":"bonusDamage","type":"int256"},{"internalType":"int256","name":"armorPenetration","type":"int256"},{"internalType":"int256","name":"attackModifierBonus","type":"int256"},{"internalType":"int256","name":"critChanceBonus","type":"int256"}]},{"internalType":"bytes32","name":"attackerId","type":"bytes32"},{"internalType":"bytes32","name":"defenderId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD___calculatePhysicalAttack","outputs":[{"internalType":"int256","name":"damage","type":"int256"},{"internalType":"bool","name":"hit","type":"bool"},{"internalType":"bool","name":"crit","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__applyEquipmentBonuses","outputs":[{"internalType":"struct AdjustedCombatStats","name":"modifiedStats","type":"tuple","components":[{"internalType":"uint256","name":"adjustedStrength","type":"uint256"},{"internalType":"uint256","name":"adjustedAgility","type":"uint256"},{"internalType":"uint256","name":"adjustedIntelligence","type":"uint256"},{"internalType":"uint256","name":"adjustedArmor","type":"uint256"},{"internalType":"uint256","name":"adjustedMaxHp","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"class","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"mobLevel","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__calculateGoldDrop","outputs":[{"internalType":"uint256","name":"dropAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"canUse","type":"bool"}]},{"inputs":[{"internalType":"enum ActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"actionStats","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"UD__createAction","outputs":[{"internalType":"bytes32","name":"actionId","type":"bytes32"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"dropChance","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"uint256[]","name":"dropChances","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropGold"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItem"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes32[]","name":"characterIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItems"},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"UD__endTurn"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"UD__executeCombat"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getArmorStats","outputs":[{"internalType":"struct ArmorStats","name":"_ArmorStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint256","name":"armorModifier","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCurrentItemsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getEncounter","outputs":[{"internalType":"struct CombatEncounterData","name":"_encounterData","type":"tuple","components":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"currentTurn","type":"uint256"},{"internalType":"uint256","name":"maxTurns","type":"uint256"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getLootManagerSystem","outputs":[{"internalType":"address","name":"_lootManager","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobPosition","outputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getMulticallContract","outputs":[{"internalType":"address","name":"_multicall","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getSpawnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"view","type":"function","name":"UD__getStarterItems","outputs":[{"internalType":"struct StarterItemsData","name":"data","type":"tuple","components":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"maxDamage","type":"uint256"},{"internalType":"uint256","name":"minDamage","type":"uint256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isItemOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"participants","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidMob","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isValidPvE","outputs":[{"internalType":"bool","name":"_isValidPvE","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawnMob","outputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__updateTokenUri"},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"}},"version":1},"id":206} \ No newline at end of file +{"abi":[{"type":"function","name":"UD___calculateMagicAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD___calculatePhysicalAttack","inputs":[{"name":"attackStats","type":"tuple","internalType":"struct PhysicalAttackStats","components":[{"name":"bonusDamage","type":"int256","internalType":"int256"},{"name":"armorPenetration","type":"int256","internalType":"int256"},{"name":"attackModifierBonus","type":"int256","internalType":"int256"},{"name":"critChanceBonus","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"}]},{"name":"attackerId","type":"bytes32","internalType":"bytes32"},{"name":"defenderId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"damage","type":"int256","internalType":"int256"},{"name":"hit","type":"bool","internalType":"bool"},{"name":"crit","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__applyEquipmentBonuses","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"modifiedStats","type":"tuple","internalType":"struct AdjustedCombatStats","components":[{"name":"adjustedStrength","type":"uint256","internalType":"uint256"},{"name":"adjustedAgility","type":"uint256","internalType":"uint256"},{"name":"adjustedIntelligence","type":"uint256","internalType":"uint256"},{"name":"adjustedArmor","type":"uint256","internalType":"uint256"},{"name":"adjustedMaxHp","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__assignActionToCharacter","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__calculateGoldDrop","inputs":[{"name":"mobLevel","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dropAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canUse","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createAction","inputs":[{"name":"actionType","type":"uint8","internalType":"enum ActionType"},{"name":"actionStats","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"dropChance","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"dropChances","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropGold","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItem","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItems","inputs":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"characterIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__endTurn","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipAction","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__executeCombat","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getArmorStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_ArmorStats","type":"tuple","internalType":"struct ArmorStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"armorModifier","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentItemsCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEncounter","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_encounterData","type":"tuple","internalType":"struct CombatEncounterData","components":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"},{"name":"currentTurn","type":"uint256","internalType":"uint256"},{"name":"maxTurns","type":"uint256","internalType":"uint256"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getLootManagerSystem","inputs":[],"outputs":[{"name":"_lootManager","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMobId","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMobPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMulticallContract","inputs":[],"outputs":[{"name":"_multicall","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"UD__getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getSpawnCounter","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct StarterItemsData","components":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"maxDamage","type":"uint256","internalType":"uint256"},{"name":"minDamage","type":"uint256","internalType":"uint256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isItemOwner","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"participants","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidPvE","inputs":[{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isValidPvE","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawnMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD___calculateMagicAttack()":"e0cac377","UD___calculatePhysicalAttack((int256,int256,int256,int256,uint8[]),bytes32,bytes32,uint256,uint256)":"bf81ff5d","UD__applyEquipmentBonuses(bytes32)":"54f1f2db","UD__assignActionToCharacter(bytes32,bytes32)":"854cd561","UD__calculateGoldDrop(uint256,uint256)":"c3505171","UD__checkRequirements(bytes32,uint256)":"bf4dbebc","UD__createAction(uint8,bytes)":"c3344bd2","UD__createItem(uint8,uint256,uint256,bytes,string)":"c2647a81","UD__createItems(uint8[],uint256[],uint256[],bytes[],string[])":"8a2d4e05","UD__createMatch(uint8,bytes32[],bytes32[])":"3e602b01","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__dropGold(bytes32,uint256)":"fda0ce50","UD__dropItem(uint256,uint256,bytes32)":"88c571e1","UD__dropItems(uint256[],uint256[],bytes32[])":"e45cde14","UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"1f357129","UD__enterGame(bytes32)":"b968fa3a","UD__equipAction(bytes32,bytes32)":"3d37a73e","UD__equipItems(bytes32,uint256[])":"2d9ac2be","UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"a0ba1f1e","UD__getArmorStats(uint256)":"e75aa93b","UD__getCharacterToken()":"49d8cf02","UD__getCharacterTokenId(bytes32)":"d97302d0","UD__getClass(bytes32)":"0ae6f9ab","UD__getCurrentAvailableLevel(uint256)":"d453e623","UD__getCurrentItemsCounter()":"4652f280","UD__getEncounter(bytes32)":"55faf03a","UD__getEntitiesAtPosition(uint16,uint16)":"d0f8a4f5","UD__getEntropy()":"b5c691c7","UD__getExperience(bytes32)":"a8b79e60","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getLootManagerSystem()":"f2cb96f2","UD__getMob(bytes32)":"5ac36570","UD__getMob(uint256)":"622834d0","UD__getMobId(bytes32)":"53d64640","UD__getMobPosition(bytes32)":"8b3f8277","UD__getMonsterStats(bytes32)":"e6c22e06","UD__getMonsterStats(uint256)":"91b22373","UD__getMulticallContract()":"71ce415d","UD__getName(bytes32)":"e902af7a","UD__getNpcStats(bytes32)":"a17a6b7f","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(bytes32)":"777c2caf","UD__getOwnerAddress(bytes32)":"4f10aabc","UD__getPlayerEntityId(uint256)":"02ee03fa","UD__getPythProvider()":"e24cefd9","UD__getSpawnCounter(bytes32)":"f4e1633b","UD__getStarterItems(uint8)":"b8bfeca1","UD__getStats(bytes32)":"14b13b0e","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isAtPosition(bytes32,uint16,uint16)":"f48a3972","UD__isEquipped(bytes32,uint256)":"7273e39a","UD__isItemOwner(uint256,address)":"b3634118","UD__isParticipant(address,bytes32)":"7868d715","UD__isParticipant(address,bytes32[])":"18853912","UD__isValidCharacterId(bytes32)":"fa1becc4","UD__isValidMob(bytes32)":"bace814a","UD__isValidOwner(bytes32,address)":"43def638","UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)":"c6d5525b","UD__issueStarterItems(bytes32)":"f9d175ed","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(bytes32,uint16,uint16)":"d1138fa1","UD__rollStats(bytes32,bytes32,uint8)":"18f14781","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(bytes32)":"7e29a6f6","UD__spawnMob(uint256,uint16,uint16)":"15bc4248","UD__unequipItem(bytes32,uint256)":"7a190324","UD__updateTokenUri(bytes32,string)":"ecd73f84","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"name\":\"UD__assignActionToCharacter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD__calculateGoldDrop\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dropAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dropChance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"dropChances\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UD__dropGold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__dropItem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"name\":\"UD__equipAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getLootManagerSystem\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_lootManager\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getMulticallContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_multicall\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"UD__isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD___calculateMagicAttack"},{"inputs":[{"internalType":"struct PhysicalAttackStats","name":"attackStats","type":"tuple","components":[{"internalType":"int256","name":"bonusDamage","type":"int256"},{"internalType":"int256","name":"armorPenetration","type":"int256"},{"internalType":"int256","name":"attackModifierBonus","type":"int256"},{"internalType":"int256","name":"critChanceBonus","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"}]},{"internalType":"bytes32","name":"attackerId","type":"bytes32"},{"internalType":"bytes32","name":"defenderId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD___calculatePhysicalAttack","outputs":[{"internalType":"int256","name":"damage","type":"int256"},{"internalType":"bool","name":"hit","type":"bool"},{"internalType":"bool","name":"crit","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__applyEquipmentBonuses","outputs":[{"internalType":"struct AdjustedCombatStats","name":"modifiedStats","type":"tuple","components":[{"internalType":"uint256","name":"adjustedStrength","type":"uint256"},{"internalType":"uint256","name":"adjustedAgility","type":"uint256"},{"internalType":"uint256","name":"adjustedIntelligence","type":"uint256"},{"internalType":"uint256","name":"adjustedArmor","type":"uint256"},{"internalType":"uint256","name":"adjustedMaxHp","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"class","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__assignActionToCharacter"},{"inputs":[{"internalType":"uint256","name":"mobLevel","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__calculateGoldDrop","outputs":[{"internalType":"uint256","name":"dropAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"canUse","type":"bool"}]},{"inputs":[{"internalType":"enum ActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"actionStats","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"UD__createAction","outputs":[{"internalType":"bytes32","name":"actionId","type":"bytes32"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"dropChance","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"uint256[]","name":"dropChances","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropGold"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItem"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes32[]","name":"characterIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItems"},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"UD__endTurn"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipAction"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"UD__executeCombat"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getArmorStats","outputs":[{"internalType":"struct ArmorStats","name":"_ArmorStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint256","name":"armorModifier","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCurrentItemsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getEncounter","outputs":[{"internalType":"struct CombatEncounterData","name":"_encounterData","type":"tuple","components":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"currentTurn","type":"uint256"},{"internalType":"uint256","name":"maxTurns","type":"uint256"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getLootManagerSystem","outputs":[{"internalType":"address","name":"_lootManager","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobPosition","outputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getMulticallContract","outputs":[{"internalType":"address","name":"_multicall","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getSpawnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"view","type":"function","name":"UD__getStarterItems","outputs":[{"internalType":"struct StarterItemsData","name":"data","type":"tuple","components":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"maxDamage","type":"uint256"},{"internalType":"uint256","name":"minDamage","type":"uint256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isItemOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"participants","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidMob","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isValidOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isValidPvE","outputs":[{"internalType":"bool","name":"_isValidPvE","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawnMob","outputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__updateTokenUri"},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"}},"version":1},"id":206} \ No newline at end of file diff --git a/packages/contracts/out/MapSystem.sol/MapSystem.json b/packages/contracts/out/MapSystem.sol/MapSystem.json index d790dc1b7..03d7cb095 100644 --- a/packages/contracts/out/MapSystem.sol/MapSystem.json +++ b/packages/contracts/out/MapSystem.sol/MapSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea26469706673582212203d11dc1ab477316dcb4a6bf833f258f95be32aa3802e105bd4af41051131db5f64736f6c63430008180033","sourceMap":"412:4148:216:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea26469706673582212203d11dc1ab477316dcb4a6bf833f258f95be32aa3802e105bd4af41051131db5f64736f6c63430008180033","sourceMap":"412:4148:216:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:228;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:228;;;689:74;;677:2;662:18;1262:113:123;543:226:228;1755:239:216;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:228;;1401:2;1386:18;1616:110:123;1267:177:228;1580:169:216;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:216:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:216:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:216;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:216;;1279:70;;;;-1:-1:-1;;;1279:70:216;;2807:2:228;1279:70:216;;;2789:21:228;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:216;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:216;;3212:2:228;1360:67:216;;;3194:21:228;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:216;3010:349:228;1360:67:216;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:216;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:216;;605:69;;;;-1:-1:-1;;;605:69:216;;3566:2:228;605:69:216;;;3548:21:228;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:216;3364:399:228;605:69:216;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:216;;3970:2:228;685:62:216;;;3952:21:228;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:216;3768:345:228;685:62:216;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:216;;4320:2:228;885:37:216;;;4302:21:228;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:216;4118:339:228;885:37:216;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:216;;4664:2:228;932:38:216;;;4646:21:228;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:216;4462:339:228;932:38:216;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:216;;5008:2:228;980:91:216;;;4990:21:228;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:216;4806:354:228;980:91:216;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:191:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:191;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:182:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:182;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:182:o;4071:290:179:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;2592:291:193:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:193;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:193:o;5796:354:191:-;7947:22;;;16149:3:228;16145:16;;;16054:66;16141:25;;;7947:22:191;;;;16129:38:228;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:191;;;;;;;;;6023:1;16238:11:228;;;6009:16:191;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:191;;-1:-1:-1;;6023:1:191;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:191;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:193:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:193;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:228;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:193;;;;-1:-1:-1;;4107:27:193;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:182:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:182;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;9759:28:182;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:185:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:216:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:216;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:216:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:216;;7009:2:228;4393:63:216;;;6991:21:228;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:216;6807:355:228;4393:63:216;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:216;;7369:2:228;2296:80:216;;;7351:21:228;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:216;7167:403:228;2296:80:216;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:228;;1401:2;1386:18;;1267:177;2515:42:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:216;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:228;2594:9:216;;:20;;1386:18:228;;2594:38:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:216;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:228;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:216;;;;-1:-1:-1;;2754:148:216;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:216;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:191:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:191;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:191;-1:-1:-1;;;;7036:160:191:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:182:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:182;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;12402:28:182;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:182;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:216:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:188:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:188;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:228;18911:18;;3713:52:107;18794:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:216:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:216;;3609:106;-1:-1:-1;3609:106:216:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:228;25536:15;;;45340:92:45;;;25518:34:228;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:228;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:228;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:228;;51494:30:45;27964:279:228;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:228;;;1386:18;;7664:67:24;1267:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:228;30142:79;;2092:30:124;;;30130:92:228;2092:30:124;;30238:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:193;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:193;6914:97;14:332:228;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:228;;1710:439;-1:-1:-1;;;;;1710:439:228:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:228;;2420:180;-1:-1:-1;2420:180:228:o;5165:184::-;-1:-1:-1;;;5214:1:228;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:228;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:228;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:228;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:228;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:228;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:228;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:228;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:228;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:228;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:228;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:228:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:228;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:228:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:228:o;10716:184::-;-1:-1:-1;;;10765:1:228;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:228:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:228;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:228;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:228;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:228;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:228:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:228;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:228:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:228;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:228:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:228;;15702:184;-1:-1:-1;15702:184:228:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:228:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:228:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:228;;21043:640;-1:-1:-1;;;;;;;21043:640:228:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:228:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:228:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:228:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:228;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:228:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:228:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2\",\"dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f\",\"dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd\",\"dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x70c9205cb55d501725621d75489338dcfedcf93379cff8c4035d29efc9059d4a","urls":["bzz-raw://8bc9da212ce3226d2a0f357d6f83ee3976659aa8008eef7c50a1cfe74a29dde2","dweb:/ipfs/QmaSJLZSfG9mqmZ5j5GGMxK7TV1FTLK3AjZXSnAFzaKRCF"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xdbf163946f91e5c80a1e75835ea4271cb9aaa6c7b2f91dcce69d43a150b998f5","urls":["bzz-raw://77a56e2cadab6690d91ff4f2189b17a634320649a353c8a9cc2bee557d56f01f","dweb:/ipfs/QmVofp8EU3fnCiMfBmXS6cVUL2HR4DaCoacWTMxojLd5Xp"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x1e0aefa251dd9cd44c38895d11baba0915b7092c9790d6b2b4924cc7ff767328","urls":["bzz-raw://8eb34901f8cbf907343c936d2ac2b810c8533a14b4939f72209f9cb758936afd","dweb:/ipfs/QmeL2kWabayRacjcGWtzoHsVGYXbxvk7q5rPaxLQZXZCYv"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":216} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220053cba1e3ac40a56108edce34eefa1531cb77e974b1eb3bcf098a3497d365a8e64736f6c63430008180033","sourceMap":"412:4148:217:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220053cba1e3ac40a56108edce34eefa1531cb77e974b1eb3bcf098a3497d365a8e64736f6c63430008180033","sourceMap":"412:4148:217:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:230;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:230;;;689:74;;677:2;662:18;1262:113:123;543:226:230;1755:239:217;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:230;;1401:2;1386:18;1616:110:123;1267:177:230;1580:169:217;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:217:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:217:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:217;;1279:70;;;;-1:-1:-1;;;1279:70:217;;2807:2:230;1279:70:217;;;2789:21:230;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:217;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:217;;3212:2:230;1360:67:217;;;3194:21:230;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:217;3010:349:230;1360:67:217;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:217;;605:69;;;;-1:-1:-1;;;605:69:217;;3566:2:230;605:69:217;;;3548:21:230;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:217;3364:399:230;605:69:217;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:217;;3970:2:230;685:62:217;;;3952:21:230;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:217;3768:345:230;685:62:217;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:217;;4320:2:230;885:37:217;;;4302:21:230;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:217;4118:339:230;885:37:217;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:217;;4664:2:230;932:38:217;;;4646:21:230;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:217;4462:339:230;932:38:217;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:217;;5008:2:230;980:91:217;;;4990:21:230;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:217;4806:354:230;980:91:217;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:191:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:191;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:182:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:182;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:182:o;4071:290:179:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;2592:291:193:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:193;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:193:o;5796:354:191:-;7947:22;;;16149:3:230;16145:16;;;16054:66;16141:25;;;7947:22:191;;;;16129:38:230;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:191;;;;;;;;;6023:1;16238:11:230;;;6009:16:191;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:191;;-1:-1:-1;;6023:1:191;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:191;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:193:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:193;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:230;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:193;;;;-1:-1:-1;;4107:27:193;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:182:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:182;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;9759:28:182;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:185:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:217:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:217;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:217:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:217;;7009:2:230;4393:63:217;;;6991:21:230;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:217;6807:355:230;4393:63:217;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:217;;7369:2:230;2296:80:217;;;7351:21:230;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:217;7167:403:230;2296:80:217;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:230;;1401:2;1386:18;;1267:177;2515:42:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:217;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:230;2594:9:217;;:20;;1386:18:230;;2594:38:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:217;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:230;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:217;;;;-1:-1:-1;;2754:148:217;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:217;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:191:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:191;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:191;-1:-1:-1;;;;7036:160:191:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:182:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:182;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;12402:28:182;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:182;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:217:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:188:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:188;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:230;18911:18;;3713:52:107;18794:248:230;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:217:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:217;;3609:106;-1:-1:-1;3609:106:217:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:230;25536:15;;;45340:92:45;;;25518:34:230;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:230;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:230;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:230;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:230;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:230;;51494:30:45;27964:279:230;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:230;;;1386:18;;7664:67:24;1267:177:230;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:230;30142:79;;2092:30:124;;;30130:92:230;2092:30:124;;30238:12:230;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:193;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:193;6914:97;14:332:230;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:230;;1710:439;-1:-1:-1;;;;;1710:439:230:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:230;;2420:180;-1:-1:-1;2420:180:230:o;5165:184::-;-1:-1:-1;;;5214:1:230;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:230;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:230;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:230;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:230;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:230;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:230;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:230;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:230;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:230;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:230;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:230:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:230;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:230:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:230:o;10716:184::-;-1:-1:-1;;;10765:1:230;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:230:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:230;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:230;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:230;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:230;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:230:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:230;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:230:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:230;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:230:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:230;;15702:184;-1:-1:-1;15702:184:230:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:230:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:230:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:230;;21043:640;-1:-1:-1;;;;;;;21043:640:230:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:230:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:230:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:230:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:230;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:230:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:230:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":217} \ No newline at end of file diff --git a/packages/contracts/src/codegen/world/IActionSystem.sol b/packages/contracts/src/codegen/world/IActionSystem.sol index 0ec3e6231..a8b250e62 100644 --- a/packages/contracts/src/codegen/world/IActionSystem.sol +++ b/packages/contracts/src/codegen/world/IActionSystem.sol @@ -12,4 +12,8 @@ import { ActionType } from "@codegen/common.sol"; */ interface IActionSystem { function UD__createAction(ActionType actionType, bytes memory actionStats) external returns (bytes32 actionId); + + function UD__assignActionToCharacter(bytes32 characterId, bytes32 actionId) external; + + function UD__equipAction(bytes32 characterId, bytes32 actionId) external; } diff --git a/packages/contracts/src/codegen/world/ICharacterSystem.sol b/packages/contracts/src/codegen/world/ICharacterSystem.sol index 78f513d7a..7672f9758 100644 --- a/packages/contracts/src/codegen/world/ICharacterSystem.sol +++ b/packages/contracts/src/codegen/world/ICharacterSystem.sol @@ -24,6 +24,8 @@ interface ICharacterSystem { function UD__isValidCharacterId(bytes32 characterId) external view returns (bool); + function UD__isValidOwner(bytes32 characterId, address owner) external view returns (bool); + function UD__mintCharacter( address account, bytes32 name, diff --git a/packages/contracts/src/interfaces/Structs.sol b/packages/contracts/src/interfaces/Structs.sol index 1dfce41bc..d48a8a006 100644 --- a/packages/contracts/src/interfaces/Structs.sol +++ b/packages/contracts/src/interfaces/Structs.sol @@ -93,6 +93,7 @@ struct PhysicalAttackStats { int256 attackModifierBonus; // crit chance int256 critChanceBonus; + uint8[] classRestrictions; } struct Action { diff --git a/packages/contracts/src/systems/ActionSystem.sol b/packages/contracts/src/systems/ActionSystem.sol index 8864bc290..57bb4b46c 100644 --- a/packages/contracts/src/systems/ActionSystem.sol +++ b/packages/contracts/src/systems/ActionSystem.sol @@ -9,8 +9,10 @@ import { Actions, Stats, CombatEncounter, - CombatEncounterData + CombatEncounterData, + CharacterEquipment } from "@codegen/index.sol"; +import {IWorld} from "@world/IWorld.sol"; import {RngRequestType, MobType, EncounterType, ActionType} from "@codegen/common.sol"; import {Counters} from "@tables/Counters.sol"; import {Mobs, MobsData} from "@tables/Mobs.sol"; @@ -29,4 +31,10 @@ contract ActionSystem is System { ); Actions.set(actionId, actionType, actionStats); } + + function assignActionToCharacter(bytes32 characterId, bytes32 actionId) public {} + + function equipAction(bytes32 characterId, bytes32 actionId) public { + require(IWorld(_world()).UD__isValidOwner(characterId, _msgSender()), "ACTIONS: INVALID CALLER"); + } } diff --git a/packages/contracts/src/systems/CharacterSystem.sol b/packages/contracts/src/systems/CharacterSystem.sol index 07c5e74f4..a624eef8e 100644 --- a/packages/contracts/src/systems/CharacterSystem.sol +++ b/packages/contracts/src/systems/CharacterSystem.sol @@ -79,6 +79,10 @@ contract CharacterSystem is System { return ownerOf == ownerAddress; } + function isValidOwner(bytes32 characterId, address owner) public view returns (bool) { + return isValidCharacterId(characterId) && _characterToken().ownerOf(getCharacterTokenId(characterId)) == owner; + } + /** * @param account the address of the account that will own the character * @param name the keccack256 hash of the characters name to check for duplicates @@ -120,9 +124,8 @@ contract CharacterSystem is System { tempStats.currentHp = int256(tempStats.baseHitPoints); Stats.set(characterId, tempStats); IWorld(_world()).UD__dropGold(characterId, 5 ether); - // issue starterWeapon + // issue starter gear IWorld(_world()).UD__issueStarterItems(characterId); - // SystemSwitch.call(abi.encodeCall(ILootManagerSystem.UD__issueStarterItems, (characterId))); Characters.setLocked(characterId, true); } diff --git a/packages/contracts/src/systems/EquipmentSystem.sol b/packages/contracts/src/systems/EquipmentSystem.sol index 2b8023128..582415c1a 100644 --- a/packages/contracts/src/systems/EquipmentSystem.sol +++ b/packages/contracts/src/systems/EquipmentSystem.sol @@ -194,7 +194,7 @@ contract EquipmentSystem is System { address characterOwner = IWorld(_world()).UD__getOwner(characterId); require(characterOwner == _msgSender(), "ITEMS: Not Character Owner"); uint8 itemType = uint8(IWorld(_world()).UD__getItemType(itemId)); - if (itemType == 0) { + if (itemType == uint8(0)) { uint256[] memory sortedArray = _swapToEndOfArray(itemId, CharacterEquipment.getEquippedWeapons(characterId)); if (sortedArray[sortedArray.length - 1] == itemId) { CharacterEquipment.setEquippedWeapons(characterId, sortedArray); @@ -202,16 +202,14 @@ contract EquipmentSystem is System { success = true; } - } - if (itemType == 1) { + } else if (itemType == uint8(1)) { uint256[] memory sortedArray = _swapToEndOfArray(itemId, CharacterEquipment.getEquippedArmor(characterId)); if (sortedArray[sortedArray.length - 1] == itemId) { CharacterEquipment.setEquippedArmor(characterId, sortedArray); CharacterEquipment.popEquippedArmor(characterId); success = true; } - } - if (itemType == 2) { + } else if (itemType == uint8(2)) { // uint256[] memory sortedArray = // _moveIdToEndOfArray(itemId, CharacterEquipment.getEquippedSpells(characterId)); // if (sortedArray[sortedArray.length - 1] == itemId) { @@ -219,6 +217,8 @@ contract EquipmentSystem is System { // CharacterEquipment.popEquippedSpells(characterId); // success = true; // } + } else { + revert("EQUIPMENT: UNRECOGNIZED ITEM TYPE"); } _setEquipmentBonuses(characterId); } @@ -279,12 +279,21 @@ contract EquipmentSystem is System { pure returns (uint256[] memory swappedArray) { - for (uint256 i; i < array.length;) { - if (array[i] == itemId) { - uint256 last = array[array.length - 1]; - array[i] = last; - array[array.length - 1] = itemId; + if (array.length > 1) { + for (uint256 i; i < array.length;) { + if (array[i] == itemId) { + uint256 last = array[array.length - 1]; + array[i] = last; + array[array.length - 1] = itemId; + swappedArray = array; + break; + } + { + i++; + } } + } else { + swappedArray = array; } } diff --git a/packages/contracts/test/SetUp.sol b/packages/contracts/test/SetUp.sol index e759aba12..f31b826a4 100644 --- a/packages/contracts/test/SetUp.sol +++ b/packages/contracts/test/SetUp.sol @@ -70,8 +70,13 @@ contract SetUp is Test { hitPointModifier: 4 }); - PhysicalAttackStats memory basicAttack = - PhysicalAttackStats({bonusDamage: 0, armorPenetration: 0, attackModifierBonus: 0, critChanceBonus: 0}); + PhysicalAttackStats memory basicAttack = PhysicalAttackStats({ + bonusDamage: 0, + armorPenetration: 0, + attackModifierBonus: 0, + critChanceBonus: 0, + classRestrictions: classRestrictions + }); basicAttackId = world.UD__createAction(ActionType.PhysicalAttack, abi.encode(basicAttack)); vm.label(alice, "alice"); diff --git a/packages/contracts/worlds.json b/packages/contracts/worlds.json index 537af92d0..dd4ddd1e5 100644 --- a/packages/contracts/worlds.json +++ b/packages/contracts/worlds.json @@ -1,6 +1,6 @@ { "31337": { - "address": "0xd5274fd8e66408599e437619e13621aaf79e4a1a" + "address": "0xa74b62c241f67bb108d8cad91ab58da0ea6a28f5" }, "84532": { "address": "0x304d17a51415f9ce2a1c3d5213a10c58098b1d44", From af427de7a0ab2bad8c9b6fa4aa4e26f15d289b04 Mon Sep 17 00:00:00 2001 From: MrDeadCe11 Date: Sun, 14 Jul 2024 20:34:07 -0500 Subject: [PATCH 5/8] fixed multiple item equipping --- packages/contracts/src/codegen/common.sol | 60 +- packages/contracts/src/codegen/index.sol | 42 +- .../contracts/src/codegen/tables/Actions.sol | 924 ++++---- .../contracts/src/codegen/tables/Admin.sol | 386 +-- .../src/codegen/tables/CharacterEquipment.sol | 2101 ++++++++--------- .../src/codegen/tables/Characters.sol | 820 ++++--- .../src/codegen/tables/CombatEncounter.sol | 1731 +++++++------- .../contracts/src/codegen/tables/Counters.sol | 404 ++-- .../src/codegen/tables/EntitiesAtPosition.sol | 950 ++++---- .../contracts/src/codegen/tables/Items.sol | 1017 ++++---- .../contracts/src/codegen/tables/Levels.sol | 380 +-- .../src/codegen/tables/MapConfig.sol | 510 ++-- .../src/codegen/tables/MatchEntity.sol | 613 +++-- .../contracts/src/codegen/tables/Mobs.sol | 1272 +++++----- .../src/codegen/tables/MobsByLevel.sol | 886 +++---- .../contracts/src/codegen/tables/Name.sol | 880 +++---- .../src/codegen/tables/NameExists.sol | 386 +-- .../contracts/src/codegen/tables/Position.sol | 538 +++-- .../src/codegen/tables/RandomNumbers.sol | 924 ++++---- .../contracts/src/codegen/tables/Spawned.sol | 386 +-- .../src/codegen/tables/StarterItems.sol | 1145 ++++----- .../contracts/src/codegen/tables/Stats.sol | 1348 ++++++----- .../codegen/tables/UltimateDominionConfig.sol | 1137 +++++---- .../src/codegen/world/IActionSystem.sol | 8 +- .../src/codegen/world/ICharacterSystem.sol | 40 +- .../src/codegen/world/ICombatSystem.sol | 58 +- .../src/codegen/world/IEquipmentSystem.sol | 19 +- .../src/codegen/world/IItemsSystem.sol | 46 +- .../src/codegen/world/IMapSystem.sol | 11 +- .../src/codegen/world/IMobSystem.sol | 35 +- .../world/IUltimateDominionConfigSystem.sol | 14 +- .../contracts/src/codegen/world/IWorld.sol | 40 +- .../contracts/src/systems/EquipmentSystem.sol | 8 +- 33 files changed, 9525 insertions(+), 9594 deletions(-) diff --git a/packages/contracts/src/codegen/common.sol b/packages/contracts/src/codegen/common.sol index f7e7e32f9..5ccf0da3d 100644 --- a/packages/contracts/src/codegen/common.sol +++ b/packages/contracts/src/codegen/common.sol @@ -3,55 +3,55 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ enum Classes { - Warrior, - Rogue, - Mage + Warrior, + Rogue, + Mage } enum RngRequestType { - CharacterStats, - Combat, - WorldGeneration + CharacterStats, + Combat, + WorldGeneration } enum ItemType { - Weapon, - Armor, - Spell, - Potion, - Material, - QuestItem + Weapon, + Armor, + Spell, + Potion, + Material, + QuestItem } enum MobType { - Monster, - NPC + Monster, + NPC } enum Alignment { - Loyalist, - Neutral, - Rebel, - Aggro + Loyalist, + Neutral, + Rebel, + Aggro } enum EncounterType { - PvP, - PvE + PvP, + PvE } enum ActionType { - Temporary, - PhysicalAttack, - MagicAttack, - StatusEffect + Temporary, + PhysicalAttack, + MagicAttack, + StatusEffect } enum StatusEffects { - ToHitModifier, - DoT, - HitPointMod, - ArmorMod, - WeaponMod, - Stun + ToHitModifier, + DoT, + HitPointMod, + ArmorMod, + WeaponMod, + Stun } diff --git a/packages/contracts/src/codegen/index.sol b/packages/contracts/src/codegen/index.sol index 9aac60c5b..5e723a45c 100644 --- a/packages/contracts/src/codegen/index.sol +++ b/packages/contracts/src/codegen/index.sol @@ -3,24 +3,24 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import { Admin } from "./tables/Admin.sol"; -import { Characters, CharactersData } from "./tables/Characters.sol"; -import { Stats, StatsData } from "./tables/Stats.sol"; -import { MapConfig } from "./tables/MapConfig.sol"; -import { Spawned } from "./tables/Spawned.sol"; -import { Mobs, MobsData } from "./tables/Mobs.sol"; -import { MobsByLevel } from "./tables/MobsByLevel.sol"; -import { Levels } from "./tables/Levels.sol"; -import { CharacterEquipment, CharacterEquipmentData } from "./tables/CharacterEquipment.sol"; -import { Counters } from "./tables/Counters.sol"; -import { Items, ItemsData } from "./tables/Items.sol"; -import { Actions, ActionsData } from "./tables/Actions.sol"; -import { StarterItems, StarterItemsData } from "./tables/StarterItems.sol"; -import { Name } from "./tables/Name.sol"; -import { NameExists } from "./tables/NameExists.sol"; -import { CombatEncounter, CombatEncounterData } from "./tables/CombatEncounter.sol"; -import { MatchEntity, MatchEntityData } from "./tables/MatchEntity.sol"; -import { RandomNumbers, RandomNumbersData } from "./tables/RandomNumbers.sol"; -import { Position } from "./tables/Position.sol"; -import { EntitiesAtPosition } from "./tables/EntitiesAtPosition.sol"; -import { UltimateDominionConfig, UltimateDominionConfigData } from "./tables/UltimateDominionConfig.sol"; +import {Admin} from "./tables/Admin.sol"; +import {Characters, CharactersData} from "./tables/Characters.sol"; +import {Stats, StatsData} from "./tables/Stats.sol"; +import {MapConfig} from "./tables/MapConfig.sol"; +import {Spawned} from "./tables/Spawned.sol"; +import {Mobs, MobsData} from "./tables/Mobs.sol"; +import {MobsByLevel} from "./tables/MobsByLevel.sol"; +import {Levels} from "./tables/Levels.sol"; +import {CharacterEquipment, CharacterEquipmentData} from "./tables/CharacterEquipment.sol"; +import {Counters} from "./tables/Counters.sol"; +import {Items, ItemsData} from "./tables/Items.sol"; +import {Actions, ActionsData} from "./tables/Actions.sol"; +import {StarterItems, StarterItemsData} from "./tables/StarterItems.sol"; +import {Name} from "./tables/Name.sol"; +import {NameExists} from "./tables/NameExists.sol"; +import {CombatEncounter, CombatEncounterData} from "./tables/CombatEncounter.sol"; +import {MatchEntity, MatchEntityData} from "./tables/MatchEntity.sol"; +import {RandomNumbers, RandomNumbersData} from "./tables/RandomNumbers.sol"; +import {Position} from "./tables/Position.sol"; +import {EntitiesAtPosition} from "./tables/EntitiesAtPosition.sol"; +import {UltimateDominionConfig, UltimateDominionConfigData} from "./tables/UltimateDominionConfig.sol"; diff --git a/packages/contracts/src/codegen/tables/Actions.sol b/packages/contracts/src/codegen/tables/Actions.sol index bb1d02af3..ff15ef5df 100644 --- a/packages/contracts/src/codegen/tables/Actions.sol +++ b/packages/contracts/src/codegen/tables/Actions.sol @@ -4,475 +4,471 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import { ActionType } from "./../common.sol"; +import {ActionType} from "./../common.sol"; struct ActionsData { - ActionType actionType; - bytes actionStats; + ActionType actionType; + bytes actionStats; } library Actions { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Actions", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000416374696f6e73000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010101000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint8, bytes) - Schema constant _valueSchema = Schema.wrap(0x0001010100c40000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "actionId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "actionType"; - fieldNames[1] = "actionStats"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get actionType. - */ - function getActionType(bytes32 actionId) internal view returns (ActionType actionType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return ActionType(uint8(bytes1(_blob))); - } - - /** - * @notice Get actionType. - */ - function _getActionType(bytes32 actionId) internal view returns (ActionType actionType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return ActionType(uint8(bytes1(_blob))); - } - - /** - * @notice Set actionType. - */ - function setActionType(bytes32 actionId, ActionType actionType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(actionType)), _fieldLayout); - } - - /** - * @notice Set actionType. - */ - function _setActionType(bytes32 actionId, ActionType actionType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(actionType)), _fieldLayout); - } - - /** - * @notice Get actionStats. - */ - function getActionStats(bytes32 actionId) internal view returns (bytes memory actionStats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Get actionStats. - */ - function _getActionStats(bytes32 actionId) internal view returns (bytes memory actionStats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Set actionStats. - */ - function setActionStats(bytes32 actionId, bytes memory actionStats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((actionStats))); - } - - /** - * @notice Set actionStats. - */ - function _setActionStats(bytes32 actionId, bytes memory actionStats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((actionStats))); - } - - /** - * @notice Get the length of actionStats. - */ - function lengthActionStats(bytes32 actionId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of actionStats. - */ - function _lengthActionStats(bytes32 actionId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of actionStats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemActionStats(bytes32 actionId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Get an item of actionStats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemActionStats(bytes32 actionId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Push a slice to actionStats. - */ - function pushActionStats(bytes32 actionId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to actionStats. - */ - function _pushActionStats(bytes32 actionId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Pop a slice from actionStats. - */ - function popActionStats(bytes32 actionId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from actionStats. - */ - function _popActionStats(bytes32 actionId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Update a slice of actionStats at `_index`. - */ - function updateActionStats(bytes32 actionId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of actionStats at `_index`. - */ - function _updateActionStats(bytes32 actionId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(bytes32 actionId) internal view returns (ActionsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 actionId) internal view returns (ActionsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(bytes32 actionId, ActionType actionType, bytes memory actionStats) internal { - bytes memory _staticData = encodeStatic(actionType); - - EncodedLengths _encodedLengths = encodeLengths(actionStats); - bytes memory _dynamicData = encodeDynamic(actionStats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(bytes32 actionId, ActionType actionType, bytes memory actionStats) internal { - bytes memory _staticData = encodeStatic(actionType); - - EncodedLengths _encodedLengths = encodeLengths(actionStats); - bytes memory _dynamicData = encodeDynamic(actionStats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 actionId, ActionsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.actionType); - - EncodedLengths _encodedLengths = encodeLengths(_table.actionStats); - bytes memory _dynamicData = encodeDynamic(_table.actionStats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 actionId, ActionsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.actionType); - - EncodedLengths _encodedLengths = encodeLengths(_table.actionStats); - bytes memory _dynamicData = encodeDynamic(_table.actionStats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (ActionType actionType) { - actionType = ActionType(uint8(Bytes.getBytes1(_blob, 0))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic( - EncodedLengths _encodedLengths, - bytes memory _blob - ) internal pure returns (bytes memory actionStats) { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - actionStats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode( - bytes memory _staticData, - EncodedLengths _encodedLengths, - bytes memory _dynamicData - ) internal pure returns (ActionsData memory _table) { - (_table.actionType) = decodeStatic(_staticData); - - (_table.actionStats) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 actionId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 actionId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(ActionType actionType) internal pure returns (bytes memory) { - return abi.encodePacked(actionType); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(bytes memory actionStats) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(bytes(actionStats).length); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes memory actionStats) internal pure returns (bytes memory) { - return abi.encodePacked(bytes((actionStats))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - ActionType actionType, - bytes memory actionStats - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(actionType); - - EncodedLengths _encodedLengths = encodeLengths(actionStats); - bytes memory _dynamicData = encodeDynamic(actionStats); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 actionId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Actions", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000416374696f6e73000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010101000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint8, bytes) + Schema constant _valueSchema = Schema.wrap(0x0001010100c40000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "actionId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "actionType"; + fieldNames[1] = "actionStats"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get actionType. + */ + function getActionType(bytes32 actionId) internal view returns (ActionType actionType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return ActionType(uint8(bytes1(_blob))); + } + + /** + * @notice Get actionType. + */ + function _getActionType(bytes32 actionId) internal view returns (ActionType actionType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return ActionType(uint8(bytes1(_blob))); + } + + /** + * @notice Set actionType. + */ + function setActionType(bytes32 actionId, ActionType actionType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(actionType)), _fieldLayout); + } + + /** + * @notice Set actionType. + */ + function _setActionType(bytes32 actionId, ActionType actionType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(actionType)), _fieldLayout); + } + + /** + * @notice Get actionStats. + */ + function getActionStats(bytes32 actionId) internal view returns (bytes memory actionStats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Get actionStats. + */ + function _getActionStats(bytes32 actionId) internal view returns (bytes memory actionStats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Set actionStats. + */ + function setActionStats(bytes32 actionId, bytes memory actionStats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((actionStats))); + } + + /** + * @notice Set actionStats. + */ + function _setActionStats(bytes32 actionId, bytes memory actionStats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((actionStats))); + } + + /** + * @notice Get the length of actionStats. + */ + function lengthActionStats(bytes32 actionId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of actionStats. + */ + function _lengthActionStats(bytes32 actionId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of actionStats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemActionStats(bytes32 actionId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Get an item of actionStats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemActionStats(bytes32 actionId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Push a slice to actionStats. + */ + function pushActionStats(bytes32 actionId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to actionStats. + */ + function _pushActionStats(bytes32 actionId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Pop a slice from actionStats. + */ + function popActionStats(bytes32 actionId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from actionStats. + */ + function _popActionStats(bytes32 actionId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Update a slice of actionStats at `_index`. + */ + function updateActionStats(bytes32 actionId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of actionStats at `_index`. + */ + function _updateActionStats(bytes32 actionId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(bytes32 actionId) internal view returns (ActionsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 actionId) internal view returns (ActionsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(bytes32 actionId, ActionType actionType, bytes memory actionStats) internal { + bytes memory _staticData = encodeStatic(actionType); + + EncodedLengths _encodedLengths = encodeLengths(actionStats); + bytes memory _dynamicData = encodeDynamic(actionStats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(bytes32 actionId, ActionType actionType, bytes memory actionStats) internal { + bytes memory _staticData = encodeStatic(actionType); + + EncodedLengths _encodedLengths = encodeLengths(actionStats); + bytes memory _dynamicData = encodeDynamic(actionStats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 actionId, ActionsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.actionType); + + EncodedLengths _encodedLengths = encodeLengths(_table.actionStats); + bytes memory _dynamicData = encodeDynamic(_table.actionStats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 actionId, ActionsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.actionType); + + EncodedLengths _encodedLengths = encodeLengths(_table.actionStats); + bytes memory _dynamicData = encodeDynamic(_table.actionStats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (ActionType actionType) { + actionType = ActionType(uint8(Bytes.getBytes1(_blob, 0))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) + internal + pure + returns (bytes memory actionStats) + { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + actionStats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) + internal + pure + returns (ActionsData memory _table) + { + (_table.actionType) = decodeStatic(_staticData); + + (_table.actionStats) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 actionId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 actionId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(ActionType actionType) internal pure returns (bytes memory) { + return abi.encodePacked(actionType); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(bytes memory actionStats) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(bytes(actionStats).length); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes memory actionStats) internal pure returns (bytes memory) { + return abi.encodePacked(bytes((actionStats))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(ActionType actionType, bytes memory actionStats) + internal + pure + returns (bytes memory, EncodedLengths, bytes memory) + { + bytes memory _staticData = encodeStatic(actionType); + + EncodedLengths _encodedLengths = encodeLengths(actionStats); + bytes memory _dynamicData = encodeDynamic(actionStats); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 actionId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Admin.sol b/packages/contracts/src/codegen/tables/Admin.sol index 7c5a2e32a..4182226a2 100644 --- a/packages/contracts/src/codegen/tables/Admin.sol +++ b/packages/contracts/src/codegen/tables/Admin.sol @@ -4,198 +4,198 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; library Admin { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Admin", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000041646d696e0000000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bool) - Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "id"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "value"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get value. - */ - function getValue(bytes32 id) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function _getValue(bytes32 id) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function get(bytes32 id) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function _get(bytes32 id) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Set value. - */ - function setValue(bytes32 id, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function _setValue(bytes32 id, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function set(bytes32 id, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function _set(bytes32 id, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(bool value) internal pure returns (bytes memory) { - return abi.encodePacked(value); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(bool value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(value); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 id) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Admin", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000041646d696e0000000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bool) + Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "id"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "value"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get value. + */ + function getValue(bytes32 id) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function _getValue(bytes32 id) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function get(bytes32 id) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function _get(bytes32 id) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Set value. + */ + function setValue(bytes32 id, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function _setValue(bytes32 id, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function set(bytes32 id, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function _set(bytes32 id, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(bool value) internal pure returns (bytes memory) { + return abi.encodePacked(value); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(bool value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(value); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 id) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + return _keyTuple; + } } /** @@ -205,7 +205,7 @@ library Admin { * @return result The boolean value. */ function _toBool(uint8 value) pure returns (bool result) { - assembly { - result := value - } + assembly { + result := value + } } diff --git a/packages/contracts/src/codegen/tables/CharacterEquipment.sol b/packages/contracts/src/codegen/tables/CharacterEquipment.sol index 88a9c6c2e..39acc9c9a 100644 --- a/packages/contracts/src/codegen/tables/CharacterEquipment.sol +++ b/packages/contracts/src/codegen/tables/CharacterEquipment.sol @@ -4,1066 +4,1053 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; struct CharacterEquipmentData { - int256 strBonus; - int256 agiBonus; - int256 intBonus; - int256 hpBonus; - uint256 armor; - uint256[] equippedArmor; - uint256[] equippedWeapons; - bytes32[] equippedSpells; + int256 strBonus; + int256 agiBonus; + int256 intBonus; + int256 hpBonus; + uint256 armor; + uint256[] equippedArmor; + uint256[] equippedWeapons; + bytes32[] equippedSpells; } library CharacterEquipment { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "CharacterEquipme", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000043686172616374657245717569706d65); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x00a0050320202020200000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (int256, int256, int256, int256, uint256, uint256[], uint256[], bytes32[]) - Schema constant _valueSchema = Schema.wrap(0x00a005033f3f3f3f1f8181c10000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "characterId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](8); - fieldNames[0] = "strBonus"; - fieldNames[1] = "agiBonus"; - fieldNames[2] = "intBonus"; - fieldNames[3] = "hpBonus"; - fieldNames[4] = "armor"; - fieldNames[5] = "equippedArmor"; - fieldNames[6] = "equippedWeapons"; - fieldNames[7] = "equippedSpells"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get strBonus. - */ - function getStrBonus(bytes32 characterId) internal view returns (int256 strBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get strBonus. - */ - function _getStrBonus(bytes32 characterId) internal view returns (int256 strBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set strBonus. - */ - function setStrBonus(bytes32 characterId, int256 strBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strBonus)), _fieldLayout); - } - - /** - * @notice Set strBonus. - */ - function _setStrBonus(bytes32 characterId, int256 strBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strBonus)), _fieldLayout); - } - - /** - * @notice Get agiBonus. - */ - function getAgiBonus(bytes32 characterId) internal view returns (int256 agiBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get agiBonus. - */ - function _getAgiBonus(bytes32 characterId) internal view returns (int256 agiBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set agiBonus. - */ - function setAgiBonus(bytes32 characterId, int256 agiBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agiBonus)), _fieldLayout); - } - - /** - * @notice Set agiBonus. - */ - function _setAgiBonus(bytes32 characterId, int256 agiBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agiBonus)), _fieldLayout); - } - - /** - * @notice Get intBonus. - */ - function getIntBonus(bytes32 characterId) internal view returns (int256 intBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get intBonus. - */ - function _getIntBonus(bytes32 characterId) internal view returns (int256 intBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set intBonus. - */ - function setIntBonus(bytes32 characterId, int256 intBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((intBonus)), _fieldLayout); - } - - /** - * @notice Set intBonus. - */ - function _setIntBonus(bytes32 characterId, int256 intBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((intBonus)), _fieldLayout); - } - - /** - * @notice Get hpBonus. - */ - function getHpBonus(bytes32 characterId) internal view returns (int256 hpBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get hpBonus. - */ - function _getHpBonus(bytes32 characterId) internal view returns (int256 hpBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set hpBonus. - */ - function setHpBonus(bytes32 characterId, int256 hpBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((hpBonus)), _fieldLayout); - } - - /** - * @notice Set hpBonus. - */ - function _setHpBonus(bytes32 characterId, int256 hpBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((hpBonus)), _fieldLayout); - } - - /** - * @notice Get armor. - */ - function getArmor(bytes32 characterId) internal view returns (uint256 armor) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get armor. - */ - function _getArmor(bytes32 characterId) internal view returns (uint256 armor) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set armor. - */ - function setArmor(bytes32 characterId, uint256 armor) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((armor)), _fieldLayout); - } - - /** - * @notice Set armor. - */ - function _setArmor(bytes32 characterId, uint256 armor) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((armor)), _fieldLayout); - } - - /** - * @notice Get equippedArmor. - */ - function getEquippedArmor(bytes32 characterId) internal view returns (uint256[] memory equippedArmor) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get equippedArmor. - */ - function _getEquippedArmor(bytes32 characterId) internal view returns (uint256[] memory equippedArmor) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Set equippedArmor. - */ - function setEquippedArmor(bytes32 characterId, uint256[] memory equippedArmor) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((equippedArmor))); - } - - /** - * @notice Set equippedArmor. - */ - function _setEquippedArmor(bytes32 characterId, uint256[] memory equippedArmor) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((equippedArmor))); - } - - /** - * @notice Get the length of equippedArmor. - */ - function lengthEquippedArmor(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of equippedArmor. - */ - function _lengthEquippedArmor(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of equippedArmor. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemEquippedArmor(bytes32 characterId, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of equippedArmor. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemEquippedArmor(bytes32 characterId, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Push an element to equippedArmor. - */ - function pushEquippedArmor(bytes32 characterId, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to equippedArmor. - */ - function _pushEquippedArmor(bytes32 characterId, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from equippedArmor. - */ - function popEquippedArmor(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from equippedArmor. - */ - function _popEquippedArmor(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Update an element of equippedArmor at `_index`. - */ - function updateEquippedArmor(bytes32 characterId, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of equippedArmor at `_index`. - */ - function _updateEquippedArmor(bytes32 characterId, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get equippedWeapons. - */ - function getEquippedWeapons(bytes32 characterId) internal view returns (uint256[] memory equippedWeapons) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get equippedWeapons. - */ - function _getEquippedWeapons(bytes32 characterId) internal view returns (uint256[] memory equippedWeapons) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Set equippedWeapons. - */ - function setEquippedWeapons(bytes32 characterId, uint256[] memory equippedWeapons) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((equippedWeapons))); - } - - /** - * @notice Set equippedWeapons. - */ - function _setEquippedWeapons(bytes32 characterId, uint256[] memory equippedWeapons) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((equippedWeapons))); - } - - /** - * @notice Get the length of equippedWeapons. - */ - function lengthEquippedWeapons(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of equippedWeapons. - */ - function _lengthEquippedWeapons(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of equippedWeapons. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemEquippedWeapons(bytes32 characterId, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of equippedWeapons. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemEquippedWeapons(bytes32 characterId, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Push an element to equippedWeapons. - */ - function pushEquippedWeapons(bytes32 characterId, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to equippedWeapons. - */ - function _pushEquippedWeapons(bytes32 characterId, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from equippedWeapons. - */ - function popEquippedWeapons(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Pop an element from equippedWeapons. - */ - function _popEquippedWeapons(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Update an element of equippedWeapons at `_index`. - */ - function updateEquippedWeapons(bytes32 characterId, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of equippedWeapons at `_index`. - */ - function _updateEquippedWeapons(bytes32 characterId, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get equippedSpells. - */ - function getEquippedSpells(bytes32 characterId) internal view returns (bytes32[] memory equippedSpells) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 2); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get equippedSpells. - */ - function _getEquippedSpells(bytes32 characterId) internal view returns (bytes32[] memory equippedSpells) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 2); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Set equippedSpells. - */ - function setEquippedSpells(bytes32 characterId, bytes32[] memory equippedSpells) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 2, EncodeArray.encode((equippedSpells))); - } - - /** - * @notice Set equippedSpells. - */ - function _setEquippedSpells(bytes32 characterId, bytes32[] memory equippedSpells) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 2, EncodeArray.encode((equippedSpells))); - } - - /** - * @notice Get the length of equippedSpells. - */ - function lengthEquippedSpells(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 2); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of equippedSpells. - */ - function _lengthEquippedSpells(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 2); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of equippedSpells. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemEquippedSpells(bytes32 characterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 2, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of equippedSpells. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemEquippedSpells(bytes32 characterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 2, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Push an element to equippedSpells. - */ - function pushEquippedSpells(bytes32 characterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 2, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to equippedSpells. - */ - function _pushEquippedSpells(bytes32 characterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 2, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from equippedSpells. - */ - function popEquippedSpells(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 2, 32); - } - - /** - * @notice Pop an element from equippedSpells. - */ - function _popEquippedSpells(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 2, 32); - } - - /** - * @notice Update an element of equippedSpells at `_index`. - */ - function updateEquippedSpells(bytes32 characterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 2, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of equippedSpells at `_index`. - */ - function _updateEquippedSpells(bytes32 characterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 2, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(bytes32 characterId) internal view returns (CharacterEquipmentData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 characterId) internal view returns (CharacterEquipmentData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set( - bytes32 characterId, - int256 strBonus, - int256 agiBonus, - int256 intBonus, - int256 hpBonus, - uint256 armor, - uint256[] memory equippedArmor, - uint256[] memory equippedWeapons, - bytes32[] memory equippedSpells - ) internal { - bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); - - EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); - bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set( - bytes32 characterId, - int256 strBonus, - int256 agiBonus, - int256 intBonus, - int256 hpBonus, - uint256 armor, - uint256[] memory equippedArmor, - uint256[] memory equippedWeapons, - bytes32[] memory equippedSpells - ) internal { - bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); - - EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); - bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 characterId, CharacterEquipmentData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.strBonus, - _table.agiBonus, - _table.intBonus, - _table.hpBonus, - _table.armor - ); - - EncodedLengths _encodedLengths = encodeLengths(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); - bytes memory _dynamicData = encodeDynamic(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 characterId, CharacterEquipmentData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.strBonus, - _table.agiBonus, - _table.intBonus, - _table.hpBonus, - _table.armor - ); - - EncodedLengths _encodedLengths = encodeLengths(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); - bytes memory _dynamicData = encodeDynamic(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic( - bytes memory _blob - ) internal pure returns (int256 strBonus, int256 agiBonus, int256 intBonus, int256 hpBonus, uint256 armor) { - strBonus = (int256(uint256(Bytes.getBytes32(_blob, 0)))); - - agiBonus = (int256(uint256(Bytes.getBytes32(_blob, 32)))); - - intBonus = (int256(uint256(Bytes.getBytes32(_blob, 64)))); - - hpBonus = (int256(uint256(Bytes.getBytes32(_blob, 96)))); - - armor = (uint256(Bytes.getBytes32(_blob, 128))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic( - EncodedLengths _encodedLengths, - bytes memory _blob - ) - internal - pure - returns (uint256[] memory equippedArmor, uint256[] memory equippedWeapons, bytes32[] memory equippedSpells) - { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - equippedArmor = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); - - _start = _end; - unchecked { - _end += _encodedLengths.atIndex(1); - } - equippedWeapons = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); - - _start = _end; - unchecked { - _end += _encodedLengths.atIndex(2); - } - equippedSpells = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode( - bytes memory _staticData, - EncodedLengths _encodedLengths, - bytes memory _dynamicData - ) internal pure returns (CharacterEquipmentData memory _table) { - (_table.strBonus, _table.agiBonus, _table.intBonus, _table.hpBonus, _table.armor) = decodeStatic(_staticData); - - (_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells) = decodeDynamic( - _encodedLengths, - _dynamicData - ); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic( - int256 strBonus, - int256 agiBonus, - int256 intBonus, - int256 hpBonus, - uint256 armor - ) internal pure returns (bytes memory) { - return abi.encodePacked(strBonus, agiBonus, intBonus, hpBonus, armor); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths( - uint256[] memory equippedArmor, - uint256[] memory equippedWeapons, - bytes32[] memory equippedSpells - ) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack( - equippedArmor.length * 32, - equippedWeapons.length * 32, - equippedSpells.length * 32 - ); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic( - uint256[] memory equippedArmor, - uint256[] memory equippedWeapons, - bytes32[] memory equippedSpells - ) internal pure returns (bytes memory) { - return - abi.encodePacked( - EncodeArray.encode((equippedArmor)), - EncodeArray.encode((equippedWeapons)), - EncodeArray.encode((equippedSpells)) - ); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - int256 strBonus, - int256 agiBonus, - int256 intBonus, - int256 hpBonus, - uint256 armor, - uint256[] memory equippedArmor, - uint256[] memory equippedWeapons, - bytes32[] memory equippedSpells - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); - - EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); - bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 characterId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "CharacterEquipme", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000043686172616374657245717569706d65); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x00a0050320202020200000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (int256, int256, int256, int256, uint256, uint256[], uint256[], bytes32[]) + Schema constant _valueSchema = Schema.wrap(0x00a005033f3f3f3f1f8181c10000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "characterId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](8); + fieldNames[0] = "strBonus"; + fieldNames[1] = "agiBonus"; + fieldNames[2] = "intBonus"; + fieldNames[3] = "hpBonus"; + fieldNames[4] = "armor"; + fieldNames[5] = "equippedArmor"; + fieldNames[6] = "equippedWeapons"; + fieldNames[7] = "equippedSpells"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get strBonus. + */ + function getStrBonus(bytes32 characterId) internal view returns (int256 strBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get strBonus. + */ + function _getStrBonus(bytes32 characterId) internal view returns (int256 strBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set strBonus. + */ + function setStrBonus(bytes32 characterId, int256 strBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strBonus)), _fieldLayout); + } + + /** + * @notice Set strBonus. + */ + function _setStrBonus(bytes32 characterId, int256 strBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strBonus)), _fieldLayout); + } + + /** + * @notice Get agiBonus. + */ + function getAgiBonus(bytes32 characterId) internal view returns (int256 agiBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get agiBonus. + */ + function _getAgiBonus(bytes32 characterId) internal view returns (int256 agiBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set agiBonus. + */ + function setAgiBonus(bytes32 characterId, int256 agiBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agiBonus)), _fieldLayout); + } + + /** + * @notice Set agiBonus. + */ + function _setAgiBonus(bytes32 characterId, int256 agiBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agiBonus)), _fieldLayout); + } + + /** + * @notice Get intBonus. + */ + function getIntBonus(bytes32 characterId) internal view returns (int256 intBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get intBonus. + */ + function _getIntBonus(bytes32 characterId) internal view returns (int256 intBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set intBonus. + */ + function setIntBonus(bytes32 characterId, int256 intBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((intBonus)), _fieldLayout); + } + + /** + * @notice Set intBonus. + */ + function _setIntBonus(bytes32 characterId, int256 intBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((intBonus)), _fieldLayout); + } + + /** + * @notice Get hpBonus. + */ + function getHpBonus(bytes32 characterId) internal view returns (int256 hpBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get hpBonus. + */ + function _getHpBonus(bytes32 characterId) internal view returns (int256 hpBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set hpBonus. + */ + function setHpBonus(bytes32 characterId, int256 hpBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((hpBonus)), _fieldLayout); + } + + /** + * @notice Set hpBonus. + */ + function _setHpBonus(bytes32 characterId, int256 hpBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((hpBonus)), _fieldLayout); + } + + /** + * @notice Get armor. + */ + function getArmor(bytes32 characterId) internal view returns (uint256 armor) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get armor. + */ + function _getArmor(bytes32 characterId) internal view returns (uint256 armor) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set armor. + */ + function setArmor(bytes32 characterId, uint256 armor) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((armor)), _fieldLayout); + } + + /** + * @notice Set armor. + */ + function _setArmor(bytes32 characterId, uint256 armor) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((armor)), _fieldLayout); + } + + /** + * @notice Get equippedArmor. + */ + function getEquippedArmor(bytes32 characterId) internal view returns (uint256[] memory equippedArmor) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get equippedArmor. + */ + function _getEquippedArmor(bytes32 characterId) internal view returns (uint256[] memory equippedArmor) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Set equippedArmor. + */ + function setEquippedArmor(bytes32 characterId, uint256[] memory equippedArmor) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((equippedArmor))); + } + + /** + * @notice Set equippedArmor. + */ + function _setEquippedArmor(bytes32 characterId, uint256[] memory equippedArmor) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((equippedArmor))); + } + + /** + * @notice Get the length of equippedArmor. + */ + function lengthEquippedArmor(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of equippedArmor. + */ + function _lengthEquippedArmor(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of equippedArmor. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemEquippedArmor(bytes32 characterId, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = + StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of equippedArmor. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemEquippedArmor(bytes32 characterId, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Push an element to equippedArmor. + */ + function pushEquippedArmor(bytes32 characterId, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to equippedArmor. + */ + function _pushEquippedArmor(bytes32 characterId, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from equippedArmor. + */ + function popEquippedArmor(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from equippedArmor. + */ + function _popEquippedArmor(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Update an element of equippedArmor at `_index`. + */ + function updateEquippedArmor(bytes32 characterId, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData( + _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded + ); + } + } + + /** + * @notice Update an element of equippedArmor at `_index`. + */ + function _updateEquippedArmor(bytes32 characterId, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get equippedWeapons. + */ + function getEquippedWeapons(bytes32 characterId) internal view returns (uint256[] memory equippedWeapons) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get equippedWeapons. + */ + function _getEquippedWeapons(bytes32 characterId) internal view returns (uint256[] memory equippedWeapons) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Set equippedWeapons. + */ + function setEquippedWeapons(bytes32 characterId, uint256[] memory equippedWeapons) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((equippedWeapons))); + } + + /** + * @notice Set equippedWeapons. + */ + function _setEquippedWeapons(bytes32 characterId, uint256[] memory equippedWeapons) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((equippedWeapons))); + } + + /** + * @notice Get the length of equippedWeapons. + */ + function lengthEquippedWeapons(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of equippedWeapons. + */ + function _lengthEquippedWeapons(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of equippedWeapons. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemEquippedWeapons(bytes32 characterId, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = + StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of equippedWeapons. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemEquippedWeapons(bytes32 characterId, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Push an element to equippedWeapons. + */ + function pushEquippedWeapons(bytes32 characterId, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to equippedWeapons. + */ + function _pushEquippedWeapons(bytes32 characterId, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from equippedWeapons. + */ + function popEquippedWeapons(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Pop an element from equippedWeapons. + */ + function _popEquippedWeapons(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Update an element of equippedWeapons at `_index`. + */ + function updateEquippedWeapons(bytes32 characterId, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData( + _tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded + ); + } + } + + /** + * @notice Update an element of equippedWeapons at `_index`. + */ + function _updateEquippedWeapons(bytes32 characterId, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get equippedSpells. + */ + function getEquippedSpells(bytes32 characterId) internal view returns (bytes32[] memory equippedSpells) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 2); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get equippedSpells. + */ + function _getEquippedSpells(bytes32 characterId) internal view returns (bytes32[] memory equippedSpells) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 2); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Set equippedSpells. + */ + function setEquippedSpells(bytes32 characterId, bytes32[] memory equippedSpells) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 2, EncodeArray.encode((equippedSpells))); + } + + /** + * @notice Set equippedSpells. + */ + function _setEquippedSpells(bytes32 characterId, bytes32[] memory equippedSpells) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 2, EncodeArray.encode((equippedSpells))); + } + + /** + * @notice Get the length of equippedSpells. + */ + function lengthEquippedSpells(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 2); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of equippedSpells. + */ + function _lengthEquippedSpells(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 2); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of equippedSpells. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemEquippedSpells(bytes32 characterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = + StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 2, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of equippedSpells. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemEquippedSpells(bytes32 characterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 2, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Push an element to equippedSpells. + */ + function pushEquippedSpells(bytes32 characterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 2, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to equippedSpells. + */ + function _pushEquippedSpells(bytes32 characterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 2, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from equippedSpells. + */ + function popEquippedSpells(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 2, 32); + } + + /** + * @notice Pop an element from equippedSpells. + */ + function _popEquippedSpells(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 2, 32); + } + + /** + * @notice Update an element of equippedSpells at `_index`. + */ + function updateEquippedSpells(bytes32 characterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData( + _tableId, _keyTuple, 2, uint40(_index * 32), uint40(_encoded.length), _encoded + ); + } + } + + /** + * @notice Update an element of equippedSpells at `_index`. + */ + function _updateEquippedSpells(bytes32 characterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 2, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(bytes32 characterId) internal view returns (CharacterEquipmentData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 characterId) internal view returns (CharacterEquipmentData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set( + bytes32 characterId, + int256 strBonus, + int256 agiBonus, + int256 intBonus, + int256 hpBonus, + uint256 armor, + uint256[] memory equippedArmor, + uint256[] memory equippedWeapons, + bytes32[] memory equippedSpells + ) internal { + bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); + + EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); + bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set( + bytes32 characterId, + int256 strBonus, + int256 agiBonus, + int256 intBonus, + int256 hpBonus, + uint256 armor, + uint256[] memory equippedArmor, + uint256[] memory equippedWeapons, + bytes32[] memory equippedSpells + ) internal { + bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); + + EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); + bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 characterId, CharacterEquipmentData memory _table) internal { + bytes memory _staticData = + encodeStatic(_table.strBonus, _table.agiBonus, _table.intBonus, _table.hpBonus, _table.armor); + + EncodedLengths _encodedLengths = + encodeLengths(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); + bytes memory _dynamicData = encodeDynamic(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 characterId, CharacterEquipmentData memory _table) internal { + bytes memory _staticData = + encodeStatic(_table.strBonus, _table.agiBonus, _table.intBonus, _table.hpBonus, _table.armor); + + EncodedLengths _encodedLengths = + encodeLengths(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); + bytes memory _dynamicData = encodeDynamic(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) + internal + pure + returns (int256 strBonus, int256 agiBonus, int256 intBonus, int256 hpBonus, uint256 armor) + { + strBonus = (int256(uint256(Bytes.getBytes32(_blob, 0)))); + + agiBonus = (int256(uint256(Bytes.getBytes32(_blob, 32)))); + + intBonus = (int256(uint256(Bytes.getBytes32(_blob, 64)))); + + hpBonus = (int256(uint256(Bytes.getBytes32(_blob, 96)))); + + armor = (uint256(Bytes.getBytes32(_blob, 128))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) + internal + pure + returns (uint256[] memory equippedArmor, uint256[] memory equippedWeapons, bytes32[] memory equippedSpells) + { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + equippedArmor = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); + + _start = _end; + unchecked { + _end += _encodedLengths.atIndex(1); + } + equippedWeapons = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); + + _start = _end; + unchecked { + _end += _encodedLengths.atIndex(2); + } + equippedSpells = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) + internal + pure + returns (CharacterEquipmentData memory _table) + { + (_table.strBonus, _table.agiBonus, _table.intBonus, _table.hpBonus, _table.armor) = decodeStatic(_staticData); + + (_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells) = + decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(int256 strBonus, int256 agiBonus, int256 intBonus, int256 hpBonus, uint256 armor) + internal + pure + returns (bytes memory) + { + return abi.encodePacked(strBonus, agiBonus, intBonus, hpBonus, armor); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths( + uint256[] memory equippedArmor, + uint256[] memory equippedWeapons, + bytes32[] memory equippedSpells + ) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack( + equippedArmor.length * 32, equippedWeapons.length * 32, equippedSpells.length * 32 + ); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic( + uint256[] memory equippedArmor, + uint256[] memory equippedWeapons, + bytes32[] memory equippedSpells + ) internal pure returns (bytes memory) { + return abi.encodePacked( + EncodeArray.encode((equippedArmor)), + EncodeArray.encode((equippedWeapons)), + EncodeArray.encode((equippedSpells)) + ); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + int256 strBonus, + int256 agiBonus, + int256 intBonus, + int256 hpBonus, + uint256 armor, + uint256[] memory equippedArmor, + uint256[] memory equippedWeapons, + bytes32[] memory equippedSpells + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); + + EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); + bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 characterId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Characters.sol b/packages/contracts/src/codegen/tables/Characters.sol index 3ec7e42cc..03611298f 100644 --- a/packages/contracts/src/codegen/tables/Characters.sol +++ b/packages/contracts/src/codegen/tables/Characters.sol @@ -4,421 +4,415 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; struct CharactersData { - uint256 tokenId; - address owner; - bytes32 name; - bool locked; + uint256 tokenId; + address owner; + bytes32 name; + bool locked; } library Characters { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Characters", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000043686172616374657273000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0055040020142001000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256, address, bytes32, bool) - Schema constant _valueSchema = Schema.wrap(0x005504001f615f60000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "characterId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](4); - fieldNames[0] = "tokenId"; - fieldNames[1] = "owner"; - fieldNames[2] = "name"; - fieldNames[3] = "locked"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get tokenId. - */ - function getTokenId(bytes32 characterId) internal view returns (uint256 tokenId) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get tokenId. - */ - function _getTokenId(bytes32 characterId) internal view returns (uint256 tokenId) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set tokenId. - */ - function setTokenId(bytes32 characterId, uint256 tokenId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((tokenId)), _fieldLayout); - } - - /** - * @notice Set tokenId. - */ - function _setTokenId(bytes32 characterId, uint256 tokenId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((tokenId)), _fieldLayout); - } - - /** - * @notice Get owner. - */ - function getOwner(bytes32 characterId) internal view returns (address owner) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get owner. - */ - function _getOwner(bytes32 characterId) internal view returns (address owner) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set owner. - */ - function setOwner(bytes32 characterId, address owner) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((owner)), _fieldLayout); - } - - /** - * @notice Set owner. - */ - function _setOwner(bytes32 characterId, address owner) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((owner)), _fieldLayout); - } - - /** - * @notice Get name. - */ - function getName(bytes32 characterId) internal view returns (bytes32 name) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (bytes32(_blob)); - } - - /** - * @notice Get name. - */ - function _getName(bytes32 characterId) internal view returns (bytes32 name) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (bytes32(_blob)); - } - - /** - * @notice Set name. - */ - function setName(bytes32 characterId, bytes32 name) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((name)), _fieldLayout); - } - - /** - * @notice Set name. - */ - function _setName(bytes32 characterId, bytes32 name) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((name)), _fieldLayout); - } - - /** - * @notice Get locked. - */ - function getLocked(bytes32 characterId) internal view returns (bool locked) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get locked. - */ - function _getLocked(bytes32 characterId) internal view returns (bool locked) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Set locked. - */ - function setLocked(bytes32 characterId, bool locked) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((locked)), _fieldLayout); - } - - /** - * @notice Set locked. - */ - function _setLocked(bytes32 characterId, bool locked) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((locked)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get(bytes32 characterId) internal view returns (CharactersData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 characterId) internal view returns (CharactersData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(bytes32 characterId, uint256 tokenId, address owner, bytes32 name, bool locked) internal { - bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(bytes32 characterId, uint256 tokenId, address owner, bytes32 name, bool locked) internal { - bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 characterId, CharactersData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.tokenId, _table.owner, _table.name, _table.locked); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 characterId, CharactersData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.tokenId, _table.owner, _table.name, _table.locked); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic( - bytes memory _blob - ) internal pure returns (uint256 tokenId, address owner, bytes32 name, bool locked) { - tokenId = (uint256(Bytes.getBytes32(_blob, 0))); - - owner = (address(Bytes.getBytes20(_blob, 32))); - - name = (Bytes.getBytes32(_blob, 52)); - - locked = (_toBool(uint8(Bytes.getBytes1(_blob, 84)))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode( - bytes memory _staticData, - EncodedLengths, - bytes memory - ) internal pure returns (CharactersData memory _table) { - (_table.tokenId, _table.owner, _table.name, _table.locked) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic( - uint256 tokenId, - address owner, - bytes32 name, - bool locked - ) internal pure returns (bytes memory) { - return abi.encodePacked(tokenId, owner, name, locked); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - uint256 tokenId, - address owner, - bytes32 name, - bool locked - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 characterId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Characters", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000043686172616374657273000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0055040020142001000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256, address, bytes32, bool) + Schema constant _valueSchema = Schema.wrap(0x005504001f615f60000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "characterId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](4); + fieldNames[0] = "tokenId"; + fieldNames[1] = "owner"; + fieldNames[2] = "name"; + fieldNames[3] = "locked"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get tokenId. + */ + function getTokenId(bytes32 characterId) internal view returns (uint256 tokenId) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get tokenId. + */ + function _getTokenId(bytes32 characterId) internal view returns (uint256 tokenId) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set tokenId. + */ + function setTokenId(bytes32 characterId, uint256 tokenId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((tokenId)), _fieldLayout); + } + + /** + * @notice Set tokenId. + */ + function _setTokenId(bytes32 characterId, uint256 tokenId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((tokenId)), _fieldLayout); + } + + /** + * @notice Get owner. + */ + function getOwner(bytes32 characterId) internal view returns (address owner) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get owner. + */ + function _getOwner(bytes32 characterId) internal view returns (address owner) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set owner. + */ + function setOwner(bytes32 characterId, address owner) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((owner)), _fieldLayout); + } + + /** + * @notice Set owner. + */ + function _setOwner(bytes32 characterId, address owner) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((owner)), _fieldLayout); + } + + /** + * @notice Get name. + */ + function getName(bytes32 characterId) internal view returns (bytes32 name) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (bytes32(_blob)); + } + + /** + * @notice Get name. + */ + function _getName(bytes32 characterId) internal view returns (bytes32 name) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (bytes32(_blob)); + } + + /** + * @notice Set name. + */ + function setName(bytes32 characterId, bytes32 name) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((name)), _fieldLayout); + } + + /** + * @notice Set name. + */ + function _setName(bytes32 characterId, bytes32 name) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((name)), _fieldLayout); + } + + /** + * @notice Get locked. + */ + function getLocked(bytes32 characterId) internal view returns (bool locked) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get locked. + */ + function _getLocked(bytes32 characterId) internal view returns (bool locked) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Set locked. + */ + function setLocked(bytes32 characterId, bool locked) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((locked)), _fieldLayout); + } + + /** + * @notice Set locked. + */ + function _setLocked(bytes32 characterId, bool locked) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((locked)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get(bytes32 characterId) internal view returns (CharactersData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 characterId) internal view returns (CharactersData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(bytes32 characterId, uint256 tokenId, address owner, bytes32 name, bool locked) internal { + bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(bytes32 characterId, uint256 tokenId, address owner, bytes32 name, bool locked) internal { + bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 characterId, CharactersData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.tokenId, _table.owner, _table.name, _table.locked); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 characterId, CharactersData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.tokenId, _table.owner, _table.name, _table.locked); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) + internal + pure + returns (uint256 tokenId, address owner, bytes32 name, bool locked) + { + tokenId = (uint256(Bytes.getBytes32(_blob, 0))); + + owner = (address(Bytes.getBytes20(_blob, 32))); + + name = (Bytes.getBytes32(_blob, 52)); + + locked = (_toBool(uint8(Bytes.getBytes1(_blob, 84)))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode(bytes memory _staticData, EncodedLengths, bytes memory) + internal + pure + returns (CharactersData memory _table) + { + (_table.tokenId, _table.owner, _table.name, _table.locked) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(uint256 tokenId, address owner, bytes32 name, bool locked) + internal + pure + returns (bytes memory) + { + return abi.encodePacked(tokenId, owner, name, locked); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint256 tokenId, address owner, bytes32 name, bool locked) + internal + pure + returns (bytes memory, EncodedLengths, bytes memory) + { + bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 characterId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + return _keyTuple; + } } /** @@ -428,7 +422,7 @@ library Characters { * @return result The boolean value. */ function _toBool(uint8 value) pure returns (bool result) { - assembly { - result := value - } + assembly { + result := value + } } diff --git a/packages/contracts/src/codegen/tables/CombatEncounter.sol b/packages/contracts/src/codegen/tables/CombatEncounter.sol index 261547160..76270d8c0 100644 --- a/packages/contracts/src/codegen/tables/CombatEncounter.sol +++ b/packages/contracts/src/codegen/tables/CombatEncounter.sol @@ -4,879 +4,874 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import { EncounterType } from "./../common.sol"; +import {EncounterType} from "./../common.sol"; struct CombatEncounterData { - EncounterType encounterType; - uint256 start; - uint256 end; - uint256 currentTurn; - uint256 maxTurns; - bytes32[] defenders; - bytes32[] attackers; + EncounterType encounterType; + uint256 start; + uint256 end; + uint256 currentTurn; + uint256 maxTurns; + bytes32[] defenders; + bytes32[] attackers; } library CombatEncounter { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "CombatEncounter", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000436f6d626174456e636f756e74657200); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0081050201202020200000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint8, uint256, uint256, uint256, uint256, bytes32[], bytes32[]) - Schema constant _valueSchema = Schema.wrap(0x00810502001f1f1f1fc1c1000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "encounterId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](7); - fieldNames[0] = "encounterType"; - fieldNames[1] = "start"; - fieldNames[2] = "end"; - fieldNames[3] = "currentTurn"; - fieldNames[4] = "maxTurns"; - fieldNames[5] = "defenders"; - fieldNames[6] = "attackers"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get encounterType. - */ - function getEncounterType(bytes32 encounterId) internal view returns (EncounterType encounterType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return EncounterType(uint8(bytes1(_blob))); - } - - /** - * @notice Get encounterType. - */ - function _getEncounterType(bytes32 encounterId) internal view returns (EncounterType encounterType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return EncounterType(uint8(bytes1(_blob))); - } - - /** - * @notice Set encounterType. - */ - function setEncounterType(bytes32 encounterId, EncounterType encounterType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(encounterType)), _fieldLayout); - } - - /** - * @notice Set encounterType. - */ - function _setEncounterType(bytes32 encounterId, EncounterType encounterType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(encounterType)), _fieldLayout); - } - - /** - * @notice Get start. - */ - function getStart(bytes32 encounterId) internal view returns (uint256 start) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get start. - */ - function _getStart(bytes32 encounterId) internal view returns (uint256 start) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set start. - */ - function setStart(bytes32 encounterId, uint256 start) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((start)), _fieldLayout); - } - - /** - * @notice Set start. - */ - function _setStart(bytes32 encounterId, uint256 start) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((start)), _fieldLayout); - } - - /** - * @notice Get end. - */ - function getEnd(bytes32 encounterId) internal view returns (uint256 end) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get end. - */ - function _getEnd(bytes32 encounterId) internal view returns (uint256 end) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set end. - */ - function setEnd(bytes32 encounterId, uint256 end) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((end)), _fieldLayout); - } - - /** - * @notice Set end. - */ - function _setEnd(bytes32 encounterId, uint256 end) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((end)), _fieldLayout); - } - - /** - * @notice Get currentTurn. - */ - function getCurrentTurn(bytes32 encounterId) internal view returns (uint256 currentTurn) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get currentTurn. - */ - function _getCurrentTurn(bytes32 encounterId) internal view returns (uint256 currentTurn) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set currentTurn. - */ - function setCurrentTurn(bytes32 encounterId, uint256 currentTurn) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((currentTurn)), _fieldLayout); - } - - /** - * @notice Set currentTurn. - */ - function _setCurrentTurn(bytes32 encounterId, uint256 currentTurn) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((currentTurn)), _fieldLayout); - } - - /** - * @notice Get maxTurns. - */ - function getMaxTurns(bytes32 encounterId) internal view returns (uint256 maxTurns) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get maxTurns. - */ - function _getMaxTurns(bytes32 encounterId) internal view returns (uint256 maxTurns) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set maxTurns. - */ - function setMaxTurns(bytes32 encounterId, uint256 maxTurns) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((maxTurns)), _fieldLayout); - } - - /** - * @notice Set maxTurns. - */ - function _setMaxTurns(bytes32 encounterId, uint256 maxTurns) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((maxTurns)), _fieldLayout); - } - - /** - * @notice Get defenders. - */ - function getDefenders(bytes32 encounterId) internal view returns (bytes32[] memory defenders) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get defenders. - */ - function _getDefenders(bytes32 encounterId) internal view returns (bytes32[] memory defenders) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Set defenders. - */ - function setDefenders(bytes32 encounterId, bytes32[] memory defenders) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((defenders))); - } - - /** - * @notice Set defenders. - */ - function _setDefenders(bytes32 encounterId, bytes32[] memory defenders) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((defenders))); - } - - /** - * @notice Get the length of defenders. - */ - function lengthDefenders(bytes32 encounterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of defenders. - */ - function _lengthDefenders(bytes32 encounterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of defenders. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemDefenders(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of defenders. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemDefenders(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Push an element to defenders. - */ - function pushDefenders(bytes32 encounterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to defenders. - */ - function _pushDefenders(bytes32 encounterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from defenders. - */ - function popDefenders(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from defenders. - */ - function _popDefenders(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Update an element of defenders at `_index`. - */ - function updateDefenders(bytes32 encounterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of defenders at `_index`. - */ - function _updateDefenders(bytes32 encounterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get attackers. - */ - function getAttackers(bytes32 encounterId) internal view returns (bytes32[] memory attackers) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get attackers. - */ - function _getAttackers(bytes32 encounterId) internal view returns (bytes32[] memory attackers) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Set attackers. - */ - function setAttackers(bytes32 encounterId, bytes32[] memory attackers) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((attackers))); - } - - /** - * @notice Set attackers. - */ - function _setAttackers(bytes32 encounterId, bytes32[] memory attackers) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((attackers))); - } - - /** - * @notice Get the length of attackers. - */ - function lengthAttackers(bytes32 encounterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of attackers. - */ - function _lengthAttackers(bytes32 encounterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of attackers. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemAttackers(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of attackers. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemAttackers(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Push an element to attackers. - */ - function pushAttackers(bytes32 encounterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to attackers. - */ - function _pushAttackers(bytes32 encounterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from attackers. - */ - function popAttackers(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Pop an element from attackers. - */ - function _popAttackers(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Update an element of attackers at `_index`. - */ - function updateAttackers(bytes32 encounterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of attackers at `_index`. - */ - function _updateAttackers(bytes32 encounterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(bytes32 encounterId) internal view returns (CombatEncounterData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 encounterId) internal view returns (CombatEncounterData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set( - bytes32 encounterId, - EncounterType encounterType, - uint256 start, - uint256 end, - uint256 currentTurn, - uint256 maxTurns, - bytes32[] memory defenders, - bytes32[] memory attackers - ) internal { - bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); - - EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); - bytes memory _dynamicData = encodeDynamic(defenders, attackers); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set( - bytes32 encounterId, - EncounterType encounterType, - uint256 start, - uint256 end, - uint256 currentTurn, - uint256 maxTurns, - bytes32[] memory defenders, - bytes32[] memory attackers - ) internal { - bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); - - EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); - bytes memory _dynamicData = encodeDynamic(defenders, attackers); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 encounterId, CombatEncounterData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.encounterType, - _table.start, - _table.end, - _table.currentTurn, - _table.maxTurns - ); - - EncodedLengths _encodedLengths = encodeLengths(_table.defenders, _table.attackers); - bytes memory _dynamicData = encodeDynamic(_table.defenders, _table.attackers); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 encounterId, CombatEncounterData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.encounterType, - _table.start, - _table.end, - _table.currentTurn, - _table.maxTurns - ); - - EncodedLengths _encodedLengths = encodeLengths(_table.defenders, _table.attackers); - bytes memory _dynamicData = encodeDynamic(_table.defenders, _table.attackers); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic( - bytes memory _blob - ) - internal - pure - returns (EncounterType encounterType, uint256 start, uint256 end, uint256 currentTurn, uint256 maxTurns) - { - encounterType = EncounterType(uint8(Bytes.getBytes1(_blob, 0))); - - start = (uint256(Bytes.getBytes32(_blob, 1))); - - end = (uint256(Bytes.getBytes32(_blob, 33))); - - currentTurn = (uint256(Bytes.getBytes32(_blob, 65))); - - maxTurns = (uint256(Bytes.getBytes32(_blob, 97))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic( - EncodedLengths _encodedLengths, - bytes memory _blob - ) internal pure returns (bytes32[] memory defenders, bytes32[] memory attackers) { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - defenders = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); - - _start = _end; - unchecked { - _end += _encodedLengths.atIndex(1); - } - attackers = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode( - bytes memory _staticData, - EncodedLengths _encodedLengths, - bytes memory _dynamicData - ) internal pure returns (CombatEncounterData memory _table) { - (_table.encounterType, _table.start, _table.end, _table.currentTurn, _table.maxTurns) = decodeStatic(_staticData); - - (_table.defenders, _table.attackers) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic( - EncounterType encounterType, - uint256 start, - uint256 end, - uint256 currentTurn, - uint256 maxTurns - ) internal pure returns (bytes memory) { - return abi.encodePacked(encounterType, start, end, currentTurn, maxTurns); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths( - bytes32[] memory defenders, - bytes32[] memory attackers - ) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(defenders.length * 32, attackers.length * 32); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes32[] memory defenders, bytes32[] memory attackers) internal pure returns (bytes memory) { - return abi.encodePacked(EncodeArray.encode((defenders)), EncodeArray.encode((attackers))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - EncounterType encounterType, - uint256 start, - uint256 end, - uint256 currentTurn, - uint256 maxTurns, - bytes32[] memory defenders, - bytes32[] memory attackers - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); - - EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); - bytes memory _dynamicData = encodeDynamic(defenders, attackers); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 encounterId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "CombatEncounter", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000436f6d626174456e636f756e74657200); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0081050201202020200000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint8, uint256, uint256, uint256, uint256, bytes32[], bytes32[]) + Schema constant _valueSchema = Schema.wrap(0x00810502001f1f1f1fc1c1000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "encounterId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](7); + fieldNames[0] = "encounterType"; + fieldNames[1] = "start"; + fieldNames[2] = "end"; + fieldNames[3] = "currentTurn"; + fieldNames[4] = "maxTurns"; + fieldNames[5] = "defenders"; + fieldNames[6] = "attackers"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get encounterType. + */ + function getEncounterType(bytes32 encounterId) internal view returns (EncounterType encounterType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return EncounterType(uint8(bytes1(_blob))); + } + + /** + * @notice Get encounterType. + */ + function _getEncounterType(bytes32 encounterId) internal view returns (EncounterType encounterType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return EncounterType(uint8(bytes1(_blob))); + } + + /** + * @notice Set encounterType. + */ + function setEncounterType(bytes32 encounterId, EncounterType encounterType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(encounterType)), _fieldLayout); + } + + /** + * @notice Set encounterType. + */ + function _setEncounterType(bytes32 encounterId, EncounterType encounterType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(encounterType)), _fieldLayout); + } + + /** + * @notice Get start. + */ + function getStart(bytes32 encounterId) internal view returns (uint256 start) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get start. + */ + function _getStart(bytes32 encounterId) internal view returns (uint256 start) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set start. + */ + function setStart(bytes32 encounterId, uint256 start) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((start)), _fieldLayout); + } + + /** + * @notice Set start. + */ + function _setStart(bytes32 encounterId, uint256 start) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((start)), _fieldLayout); + } + + /** + * @notice Get end. + */ + function getEnd(bytes32 encounterId) internal view returns (uint256 end) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get end. + */ + function _getEnd(bytes32 encounterId) internal view returns (uint256 end) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set end. + */ + function setEnd(bytes32 encounterId, uint256 end) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((end)), _fieldLayout); + } + + /** + * @notice Set end. + */ + function _setEnd(bytes32 encounterId, uint256 end) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((end)), _fieldLayout); + } + + /** + * @notice Get currentTurn. + */ + function getCurrentTurn(bytes32 encounterId) internal view returns (uint256 currentTurn) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get currentTurn. + */ + function _getCurrentTurn(bytes32 encounterId) internal view returns (uint256 currentTurn) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set currentTurn. + */ + function setCurrentTurn(bytes32 encounterId, uint256 currentTurn) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((currentTurn)), _fieldLayout); + } + + /** + * @notice Set currentTurn. + */ + function _setCurrentTurn(bytes32 encounterId, uint256 currentTurn) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((currentTurn)), _fieldLayout); + } + + /** + * @notice Get maxTurns. + */ + function getMaxTurns(bytes32 encounterId) internal view returns (uint256 maxTurns) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get maxTurns. + */ + function _getMaxTurns(bytes32 encounterId) internal view returns (uint256 maxTurns) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set maxTurns. + */ + function setMaxTurns(bytes32 encounterId, uint256 maxTurns) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((maxTurns)), _fieldLayout); + } + + /** + * @notice Set maxTurns. + */ + function _setMaxTurns(bytes32 encounterId, uint256 maxTurns) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((maxTurns)), _fieldLayout); + } + + /** + * @notice Get defenders. + */ + function getDefenders(bytes32 encounterId) internal view returns (bytes32[] memory defenders) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get defenders. + */ + function _getDefenders(bytes32 encounterId) internal view returns (bytes32[] memory defenders) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Set defenders. + */ + function setDefenders(bytes32 encounterId, bytes32[] memory defenders) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((defenders))); + } + + /** + * @notice Set defenders. + */ + function _setDefenders(bytes32 encounterId, bytes32[] memory defenders) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((defenders))); + } + + /** + * @notice Get the length of defenders. + */ + function lengthDefenders(bytes32 encounterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of defenders. + */ + function _lengthDefenders(bytes32 encounterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of defenders. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemDefenders(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _blob = + StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of defenders. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemDefenders(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Push an element to defenders. + */ + function pushDefenders(bytes32 encounterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to defenders. + */ + function _pushDefenders(bytes32 encounterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from defenders. + */ + function popDefenders(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from defenders. + */ + function _popDefenders(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Update an element of defenders at `_index`. + */ + function updateDefenders(bytes32 encounterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData( + _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded + ); + } + } + + /** + * @notice Update an element of defenders at `_index`. + */ + function _updateDefenders(bytes32 encounterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get attackers. + */ + function getAttackers(bytes32 encounterId) internal view returns (bytes32[] memory attackers) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get attackers. + */ + function _getAttackers(bytes32 encounterId) internal view returns (bytes32[] memory attackers) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Set attackers. + */ + function setAttackers(bytes32 encounterId, bytes32[] memory attackers) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((attackers))); + } + + /** + * @notice Set attackers. + */ + function _setAttackers(bytes32 encounterId, bytes32[] memory attackers) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((attackers))); + } + + /** + * @notice Get the length of attackers. + */ + function lengthAttackers(bytes32 encounterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of attackers. + */ + function _lengthAttackers(bytes32 encounterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of attackers. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemAttackers(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _blob = + StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of attackers. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemAttackers(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Push an element to attackers. + */ + function pushAttackers(bytes32 encounterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to attackers. + */ + function _pushAttackers(bytes32 encounterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from attackers. + */ + function popAttackers(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Pop an element from attackers. + */ + function _popAttackers(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Update an element of attackers at `_index`. + */ + function updateAttackers(bytes32 encounterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData( + _tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded + ); + } + } + + /** + * @notice Update an element of attackers at `_index`. + */ + function _updateAttackers(bytes32 encounterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(bytes32 encounterId) internal view returns (CombatEncounterData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 encounterId) internal view returns (CombatEncounterData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set( + bytes32 encounterId, + EncounterType encounterType, + uint256 start, + uint256 end, + uint256 currentTurn, + uint256 maxTurns, + bytes32[] memory defenders, + bytes32[] memory attackers + ) internal { + bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); + + EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); + bytes memory _dynamicData = encodeDynamic(defenders, attackers); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set( + bytes32 encounterId, + EncounterType encounterType, + uint256 start, + uint256 end, + uint256 currentTurn, + uint256 maxTurns, + bytes32[] memory defenders, + bytes32[] memory attackers + ) internal { + bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); + + EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); + bytes memory _dynamicData = encodeDynamic(defenders, attackers); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 encounterId, CombatEncounterData memory _table) internal { + bytes memory _staticData = + encodeStatic(_table.encounterType, _table.start, _table.end, _table.currentTurn, _table.maxTurns); + + EncodedLengths _encodedLengths = encodeLengths(_table.defenders, _table.attackers); + bytes memory _dynamicData = encodeDynamic(_table.defenders, _table.attackers); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 encounterId, CombatEncounterData memory _table) internal { + bytes memory _staticData = + encodeStatic(_table.encounterType, _table.start, _table.end, _table.currentTurn, _table.maxTurns); + + EncodedLengths _encodedLengths = encodeLengths(_table.defenders, _table.attackers); + bytes memory _dynamicData = encodeDynamic(_table.defenders, _table.attackers); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) + internal + pure + returns (EncounterType encounterType, uint256 start, uint256 end, uint256 currentTurn, uint256 maxTurns) + { + encounterType = EncounterType(uint8(Bytes.getBytes1(_blob, 0))); + + start = (uint256(Bytes.getBytes32(_blob, 1))); + + end = (uint256(Bytes.getBytes32(_blob, 33))); + + currentTurn = (uint256(Bytes.getBytes32(_blob, 65))); + + maxTurns = (uint256(Bytes.getBytes32(_blob, 97))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) + internal + pure + returns (bytes32[] memory defenders, bytes32[] memory attackers) + { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + defenders = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); + + _start = _end; + unchecked { + _end += _encodedLengths.atIndex(1); + } + attackers = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) + internal + pure + returns (CombatEncounterData memory _table) + { + (_table.encounterType, _table.start, _table.end, _table.currentTurn, _table.maxTurns) = + decodeStatic(_staticData); + + (_table.defenders, _table.attackers) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic( + EncounterType encounterType, + uint256 start, + uint256 end, + uint256 currentTurn, + uint256 maxTurns + ) internal pure returns (bytes memory) { + return abi.encodePacked(encounterType, start, end, currentTurn, maxTurns); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(bytes32[] memory defenders, bytes32[] memory attackers) + internal + pure + returns (EncodedLengths _encodedLengths) + { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(defenders.length * 32, attackers.length * 32); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes32[] memory defenders, bytes32[] memory attackers) + internal + pure + returns (bytes memory) + { + return abi.encodePacked(EncodeArray.encode((defenders)), EncodeArray.encode((attackers))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + EncounterType encounterType, + uint256 start, + uint256 end, + uint256 currentTurn, + uint256 maxTurns, + bytes32[] memory defenders, + bytes32[] memory attackers + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); + + EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); + bytes memory _dynamicData = encodeDynamic(defenders, attackers); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 encounterId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Counters.sol b/packages/contracts/src/codegen/tables/Counters.sol index abd943ab4..5b281e079 100644 --- a/packages/contracts/src/codegen/tables/Counters.sol +++ b/packages/contracts/src/codegen/tables/Counters.sol @@ -4,208 +4,208 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; library Counters { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Counters", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000436f756e746572730000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0020010020000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (address, uint256) - Schema constant _keySchema = Schema.wrap(0x00340200611f0000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256) - Schema constant _valueSchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](2); - keyNames[0] = "contractAddress"; - keyNames[1] = "mobId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "counter"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get counter. - */ - function getCounter(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get counter. - */ - function _getCounter(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get counter. - */ - function get(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get counter. - */ - function _get(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set counter. - */ - function setCounter(address contractAddress, uint256 mobId, uint256 counter) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); - } - - /** - * @notice Set counter. - */ - function _setCounter(address contractAddress, uint256 mobId, uint256 counter) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); - } - - /** - * @notice Set counter. - */ - function set(address contractAddress, uint256 mobId, uint256 counter) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); - } - - /** - * @notice Set counter. - */ - function _set(address contractAddress, uint256 mobId, uint256 counter) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(address contractAddress, uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(address contractAddress, uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(uint256 counter) internal pure returns (bytes memory) { - return abi.encodePacked(counter); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint256 counter) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(counter); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(address contractAddress, uint256 mobId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Counters", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000436f756e746572730000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0020010020000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (address, uint256) + Schema constant _keySchema = Schema.wrap(0x00340200611f0000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256) + Schema constant _valueSchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](2); + keyNames[0] = "contractAddress"; + keyNames[1] = "mobId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "counter"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get counter. + */ + function getCounter(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get counter. + */ + function _getCounter(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get counter. + */ + function get(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get counter. + */ + function _get(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set counter. + */ + function setCounter(address contractAddress, uint256 mobId, uint256 counter) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); + } + + /** + * @notice Set counter. + */ + function _setCounter(address contractAddress, uint256 mobId, uint256 counter) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); + } + + /** + * @notice Set counter. + */ + function set(address contractAddress, uint256 mobId, uint256 counter) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); + } + + /** + * @notice Set counter. + */ + function _set(address contractAddress, uint256 mobId, uint256 counter) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(address contractAddress, uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(address contractAddress, uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(uint256 counter) internal pure returns (bytes memory) { + return abi.encodePacked(counter); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint256 counter) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(counter); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(address contractAddress, uint256 mobId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/EntitiesAtPosition.sol b/packages/contracts/src/codegen/tables/EntitiesAtPosition.sol index ddeea86fd..24dd9c423 100644 --- a/packages/contracts/src/codegen/tables/EntitiesAtPosition.sol +++ b/packages/contracts/src/codegen/tables/EntitiesAtPosition.sol @@ -4,478 +4,484 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; library EntitiesAtPosition { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "EntitiesAtPositi", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000456e7469746965734174506f73697469); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint16, uint16) - Schema constant _keySchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bytes32[]) - Schema constant _valueSchema = Schema.wrap(0x00000001c1000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](2); - keyNames[0] = "x"; - keyNames[1] = "y"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "entities"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get entities. - */ - function getEntities(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get entities. - */ - function _getEntities(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get entities. - */ - function get(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get entities. - */ - function _get(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Set entities. - */ - function setEntities(uint16 x, uint16 y, bytes32[] memory entities) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); - } - - /** - * @notice Set entities. - */ - function _setEntities(uint16 x, uint16 y, bytes32[] memory entities) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); - } - - /** - * @notice Set entities. - */ - function set(uint16 x, uint16 y, bytes32[] memory entities) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); - } - - /** - * @notice Set entities. - */ - function _set(uint16 x, uint16 y, bytes32[] memory entities) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); - } - - /** - * @notice Get the length of entities. - */ - function lengthEntities(uint16 x, uint16 y) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of entities. - */ - function _lengthEntities(uint16 x, uint16 y) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of entities. - */ - function length(uint16 x, uint16 y) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of entities. - */ - function _length(uint16 x, uint16 y) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of entities. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemEntities(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of entities. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemEntities(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of entities. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItem(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of entities. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItem(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Push an element to entities. - */ - function pushEntities(uint16 x, uint16 y, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to entities. - */ - function _pushEntities(uint16 x, uint16 y, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to entities. - */ - function push(uint16 x, uint16 y, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to entities. - */ - function _push(uint16 x, uint16 y, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from entities. - */ - function popEntities(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from entities. - */ - function _popEntities(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from entities. - */ - function pop(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from entities. - */ - function _pop(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Update an element of entities at `_index`. - */ - function updateEntities(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of entities at `_index`. - */ - function _updateEntities(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of entities at `_index`. - */ - function update(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of entities at `_index`. - */ - function _update(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(bytes32[] memory entities) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(entities.length * 32); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes32[] memory entities) internal pure returns (bytes memory) { - return abi.encodePacked(EncodeArray.encode((entities))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(bytes32[] memory entities) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(entities); - bytes memory _dynamicData = encodeDynamic(entities); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint16 x, uint16 y) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "EntitiesAtPositi", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000456e7469746965734174506f73697469); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint16, uint16) + Schema constant _keySchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bytes32[]) + Schema constant _valueSchema = Schema.wrap(0x00000001c1000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](2); + keyNames[0] = "x"; + keyNames[1] = "y"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "entities"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get entities. + */ + function getEntities(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get entities. + */ + function _getEntities(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get entities. + */ + function get(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get entities. + */ + function _get(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Set entities. + */ + function setEntities(uint16 x, uint16 y, bytes32[] memory entities) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); + } + + /** + * @notice Set entities. + */ + function _setEntities(uint16 x, uint16 y, bytes32[] memory entities) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); + } + + /** + * @notice Set entities. + */ + function set(uint16 x, uint16 y, bytes32[] memory entities) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); + } + + /** + * @notice Set entities. + */ + function _set(uint16 x, uint16 y, bytes32[] memory entities) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); + } + + /** + * @notice Get the length of entities. + */ + function lengthEntities(uint16 x, uint16 y) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of entities. + */ + function _lengthEntities(uint16 x, uint16 y) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of entities. + */ + function length(uint16 x, uint16 y) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of entities. + */ + function _length(uint16 x, uint16 y) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of entities. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemEntities(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _blob = + StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of entities. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemEntities(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of entities. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItem(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _blob = + StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of entities. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItem(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Push an element to entities. + */ + function pushEntities(uint16 x, uint16 y, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to entities. + */ + function _pushEntities(uint16 x, uint16 y, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to entities. + */ + function push(uint16 x, uint16 y, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to entities. + */ + function _push(uint16 x, uint16 y, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from entities. + */ + function popEntities(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from entities. + */ + function _popEntities(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from entities. + */ + function pop(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from entities. + */ + function _pop(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Update an element of entities at `_index`. + */ + function updateEntities(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData( + _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded + ); + } + } + + /** + * @notice Update an element of entities at `_index`. + */ + function _updateEntities(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of entities at `_index`. + */ + function update(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData( + _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded + ); + } + } + + /** + * @notice Update an element of entities at `_index`. + */ + function _update(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(bytes32[] memory entities) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(entities.length * 32); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes32[] memory entities) internal pure returns (bytes memory) { + return abi.encodePacked(EncodeArray.encode((entities))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(bytes32[] memory entities) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(entities); + bytes memory _dynamicData = encodeDynamic(entities); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint16 x, uint16 y) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Items.sol b/packages/contracts/src/codegen/tables/Items.sol index d7a85595c..4204a825c 100644 --- a/packages/contracts/src/codegen/tables/Items.sol +++ b/packages/contracts/src/codegen/tables/Items.sol @@ -4,522 +4,517 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import { ItemType } from "./../common.sol"; +import {ItemType} from "./../common.sol"; struct ItemsData { - ItemType itemType; - uint256 dropChance; - bytes stats; + ItemType itemType; + uint256 dropChance; + bytes stats; } library Items { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Items", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004974656d730000000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0021020101200000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint256) - Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint8, uint256, bytes) - Schema constant _valueSchema = Schema.wrap(0x00210201001fc400000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "itemId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](3); - fieldNames[0] = "itemType"; - fieldNames[1] = "dropChance"; - fieldNames[2] = "stats"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get itemType. - */ - function getItemType(uint256 itemId) internal view returns (ItemType itemType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return ItemType(uint8(bytes1(_blob))); - } - - /** - * @notice Get itemType. - */ - function _getItemType(uint256 itemId) internal view returns (ItemType itemType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return ItemType(uint8(bytes1(_blob))); - } - - /** - * @notice Set itemType. - */ - function setItemType(uint256 itemId, ItemType itemType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(itemType)), _fieldLayout); - } - - /** - * @notice Set itemType. - */ - function _setItemType(uint256 itemId, ItemType itemType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(itemType)), _fieldLayout); - } - - /** - * @notice Get dropChance. - */ - function getDropChance(uint256 itemId) internal view returns (uint256 dropChance) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get dropChance. - */ - function _getDropChance(uint256 itemId) internal view returns (uint256 dropChance) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set dropChance. - */ - function setDropChance(uint256 itemId, uint256 dropChance) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((dropChance)), _fieldLayout); - } - - /** - * @notice Set dropChance. - */ - function _setDropChance(uint256 itemId, uint256 dropChance) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((dropChance)), _fieldLayout); - } - - /** - * @notice Get stats. - */ - function getStats(uint256 itemId) internal view returns (bytes memory stats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Get stats. - */ - function _getStats(uint256 itemId) internal view returns (bytes memory stats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Set stats. - */ - function setStats(uint256 itemId, bytes memory stats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((stats))); - } - - /** - * @notice Set stats. - */ - function _setStats(uint256 itemId, bytes memory stats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((stats))); - } - - /** - * @notice Get the length of stats. - */ - function lengthStats(uint256 itemId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of stats. - */ - function _lengthStats(uint256 itemId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of stats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemStats(uint256 itemId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Get an item of stats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemStats(uint256 itemId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Push a slice to stats. - */ - function pushStats(uint256 itemId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to stats. - */ - function _pushStats(uint256 itemId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Pop a slice from stats. - */ - function popStats(uint256 itemId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from stats. - */ - function _popStats(uint256 itemId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Update a slice of stats at `_index`. - */ - function updateStats(uint256 itemId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of stats at `_index`. - */ - function _updateStats(uint256 itemId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(uint256 itemId) internal view returns (ItemsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(uint256 itemId) internal view returns (ItemsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(uint256 itemId, ItemType itemType, uint256 dropChance, bytes memory stats) internal { - bytes memory _staticData = encodeStatic(itemType, dropChance); - - EncodedLengths _encodedLengths = encodeLengths(stats); - bytes memory _dynamicData = encodeDynamic(stats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(uint256 itemId, ItemType itemType, uint256 dropChance, bytes memory stats) internal { - bytes memory _staticData = encodeStatic(itemType, dropChance); - - EncodedLengths _encodedLengths = encodeLengths(stats); - bytes memory _dynamicData = encodeDynamic(stats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(uint256 itemId, ItemsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.itemType, _table.dropChance); - - EncodedLengths _encodedLengths = encodeLengths(_table.stats); - bytes memory _dynamicData = encodeDynamic(_table.stats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(uint256 itemId, ItemsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.itemType, _table.dropChance); - - EncodedLengths _encodedLengths = encodeLengths(_table.stats); - bytes memory _dynamicData = encodeDynamic(_table.stats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (ItemType itemType, uint256 dropChance) { - itemType = ItemType(uint8(Bytes.getBytes1(_blob, 0))); - - dropChance = (uint256(Bytes.getBytes32(_blob, 1))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic( - EncodedLengths _encodedLengths, - bytes memory _blob - ) internal pure returns (bytes memory stats) { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - stats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode( - bytes memory _staticData, - EncodedLengths _encodedLengths, - bytes memory _dynamicData - ) internal pure returns (ItemsData memory _table) { - (_table.itemType, _table.dropChance) = decodeStatic(_staticData); - - (_table.stats) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint256 itemId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint256 itemId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(ItemType itemType, uint256 dropChance) internal pure returns (bytes memory) { - return abi.encodePacked(itemType, dropChance); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(bytes memory stats) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(bytes(stats).length); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes memory stats) internal pure returns (bytes memory) { - return abi.encodePacked(bytes((stats))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - ItemType itemType, - uint256 dropChance, - bytes memory stats - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(itemType, dropChance); - - EncodedLengths _encodedLengths = encodeLengths(stats); - bytes memory _dynamicData = encodeDynamic(stats); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint256 itemId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Items", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004974656d730000000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0021020101200000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint256) + Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint8, uint256, bytes) + Schema constant _valueSchema = Schema.wrap(0x00210201001fc400000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "itemId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](3); + fieldNames[0] = "itemType"; + fieldNames[1] = "dropChance"; + fieldNames[2] = "stats"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get itemType. + */ + function getItemType(uint256 itemId) internal view returns (ItemType itemType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return ItemType(uint8(bytes1(_blob))); + } + + /** + * @notice Get itemType. + */ + function _getItemType(uint256 itemId) internal view returns (ItemType itemType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return ItemType(uint8(bytes1(_blob))); + } + + /** + * @notice Set itemType. + */ + function setItemType(uint256 itemId, ItemType itemType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(itemType)), _fieldLayout); + } + + /** + * @notice Set itemType. + */ + function _setItemType(uint256 itemId, ItemType itemType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(itemType)), _fieldLayout); + } + + /** + * @notice Get dropChance. + */ + function getDropChance(uint256 itemId) internal view returns (uint256 dropChance) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get dropChance. + */ + function _getDropChance(uint256 itemId) internal view returns (uint256 dropChance) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set dropChance. + */ + function setDropChance(uint256 itemId, uint256 dropChance) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((dropChance)), _fieldLayout); + } + + /** + * @notice Set dropChance. + */ + function _setDropChance(uint256 itemId, uint256 dropChance) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((dropChance)), _fieldLayout); + } + + /** + * @notice Get stats. + */ + function getStats(uint256 itemId) internal view returns (bytes memory stats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Get stats. + */ + function _getStats(uint256 itemId) internal view returns (bytes memory stats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Set stats. + */ + function setStats(uint256 itemId, bytes memory stats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((stats))); + } + + /** + * @notice Set stats. + */ + function _setStats(uint256 itemId, bytes memory stats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((stats))); + } + + /** + * @notice Get the length of stats. + */ + function lengthStats(uint256 itemId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of stats. + */ + function _lengthStats(uint256 itemId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of stats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemStats(uint256 itemId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Get an item of stats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemStats(uint256 itemId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Push a slice to stats. + */ + function pushStats(uint256 itemId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to stats. + */ + function _pushStats(uint256 itemId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Pop a slice from stats. + */ + function popStats(uint256 itemId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from stats. + */ + function _popStats(uint256 itemId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Update a slice of stats at `_index`. + */ + function updateStats(uint256 itemId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of stats at `_index`. + */ + function _updateStats(uint256 itemId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(uint256 itemId) internal view returns (ItemsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(uint256 itemId) internal view returns (ItemsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(uint256 itemId, ItemType itemType, uint256 dropChance, bytes memory stats) internal { + bytes memory _staticData = encodeStatic(itemType, dropChance); + + EncodedLengths _encodedLengths = encodeLengths(stats); + bytes memory _dynamicData = encodeDynamic(stats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(uint256 itemId, ItemType itemType, uint256 dropChance, bytes memory stats) internal { + bytes memory _staticData = encodeStatic(itemType, dropChance); + + EncodedLengths _encodedLengths = encodeLengths(stats); + bytes memory _dynamicData = encodeDynamic(stats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(uint256 itemId, ItemsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.itemType, _table.dropChance); + + EncodedLengths _encodedLengths = encodeLengths(_table.stats); + bytes memory _dynamicData = encodeDynamic(_table.stats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(uint256 itemId, ItemsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.itemType, _table.dropChance); + + EncodedLengths _encodedLengths = encodeLengths(_table.stats); + bytes memory _dynamicData = encodeDynamic(_table.stats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (ItemType itemType, uint256 dropChance) { + itemType = ItemType(uint8(Bytes.getBytes1(_blob, 0))); + + dropChance = (uint256(Bytes.getBytes32(_blob, 1))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) + internal + pure + returns (bytes memory stats) + { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + stats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) + internal + pure + returns (ItemsData memory _table) + { + (_table.itemType, _table.dropChance) = decodeStatic(_staticData); + + (_table.stats) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint256 itemId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint256 itemId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(ItemType itemType, uint256 dropChance) internal pure returns (bytes memory) { + return abi.encodePacked(itemType, dropChance); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(bytes memory stats) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(bytes(stats).length); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes memory stats) internal pure returns (bytes memory) { + return abi.encodePacked(bytes((stats))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(ItemType itemType, uint256 dropChance, bytes memory stats) + internal + pure + returns (bytes memory, EncodedLengths, bytes memory) + { + bytes memory _staticData = encodeStatic(itemType, dropChance); + + EncodedLengths _encodedLengths = encodeLengths(stats); + bytes memory _dynamicData = encodeDynamic(stats); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint256 itemId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Levels.sol b/packages/contracts/src/codegen/tables/Levels.sol index 6a2ddb8a1..e41f28a3f 100644 --- a/packages/contracts/src/codegen/tables/Levels.sol +++ b/packages/contracts/src/codegen/tables/Levels.sol @@ -4,196 +4,196 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; library Levels { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Levels", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004c6576656c7300000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0020010020000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint256) - Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256) - Schema constant _valueSchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "level"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "experience"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get experience. - */ - function getExperience(uint256 level) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get experience. - */ - function _getExperience(uint256 level) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get experience. - */ - function get(uint256 level) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get experience. - */ - function _get(uint256 level) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set experience. - */ - function setExperience(uint256 level, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Set experience. - */ - function _setExperience(uint256 level, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Set experience. - */ - function set(uint256 level, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Set experience. - */ - function _set(uint256 level, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(uint256 experience) internal pure returns (bytes memory) { - return abi.encodePacked(experience); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint256 experience) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(experience); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint256 level) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Levels", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004c6576656c7300000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0020010020000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint256) + Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256) + Schema constant _valueSchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "level"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "experience"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get experience. + */ + function getExperience(uint256 level) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get experience. + */ + function _getExperience(uint256 level) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get experience. + */ + function get(uint256 level) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get experience. + */ + function _get(uint256 level) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set experience. + */ + function setExperience(uint256 level, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Set experience. + */ + function _setExperience(uint256 level, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Set experience. + */ + function set(uint256 level, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Set experience. + */ + function _set(uint256 level, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(uint256 experience) internal pure returns (bytes memory) { + return abi.encodePacked(experience); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint256 experience) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(experience); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint256 level) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/MapConfig.sol b/packages/contracts/src/codegen/tables/MapConfig.sol index b4ee8307b..ec9b0735d 100644 --- a/packages/contracts/src/codegen/tables/MapConfig.sol +++ b/packages/contracts/src/codegen/tables/MapConfig.sol @@ -4,264 +4,258 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; library MapConfig { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MapConfig", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6170436f6e66696700000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0004020002020000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of () - Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint16, uint16) - Schema constant _valueSchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](0); - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "height"; - fieldNames[1] = "width"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get height. - */ - function getHeight() internal view returns (uint16 height) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Get height. - */ - function _getHeight() internal view returns (uint16 height) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Set height. - */ - function setHeight(uint16 height) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((height)), _fieldLayout); - } - - /** - * @notice Set height. - */ - function _setHeight(uint16 height) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((height)), _fieldLayout); - } - - /** - * @notice Get width. - */ - function getWidth() internal view returns (uint16 width) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Get width. - */ - function _getWidth() internal view returns (uint16 width) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Set width. - */ - function setWidth(uint16 width) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((width)), _fieldLayout); - } - - /** - * @notice Set width. - */ - function _setWidth(uint16 width) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((width)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get() internal view returns (uint16 height, uint16 width) { - bytes32[] memory _keyTuple = new bytes32[](0); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get() internal view returns (uint16 height, uint16 width) { - bytes32[] memory _keyTuple = new bytes32[](0); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(uint16 height, uint16 width) internal { - bytes memory _staticData = encodeStatic(height, width); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(uint16 height, uint16 width) internal { - bytes memory _staticData = encodeStatic(height, width); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (uint16 height, uint16 width) { - height = (uint16(Bytes.getBytes2(_blob, 0))); - - width = (uint16(Bytes.getBytes2(_blob, 2))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode( - bytes memory _staticData, - EncodedLengths, - bytes memory - ) internal pure returns (uint16 height, uint16 width) { - (height, width) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord() internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord() internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(uint16 height, uint16 width) internal pure returns (bytes memory) { - return abi.encodePacked(height, width); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint16 height, uint16 width) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(height, width); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple() internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](0); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MapConfig", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6170436f6e66696700000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0004020002020000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of () + Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint16, uint16) + Schema constant _valueSchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](0); + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "height"; + fieldNames[1] = "width"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get height. + */ + function getHeight() internal view returns (uint16 height) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Get height. + */ + function _getHeight() internal view returns (uint16 height) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Set height. + */ + function setHeight(uint16 height) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((height)), _fieldLayout); + } + + /** + * @notice Set height. + */ + function _setHeight(uint16 height) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((height)), _fieldLayout); + } + + /** + * @notice Get width. + */ + function getWidth() internal view returns (uint16 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Get width. + */ + function _getWidth() internal view returns (uint16 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Set width. + */ + function setWidth(uint16 width) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((width)), _fieldLayout); + } + + /** + * @notice Set width. + */ + function _setWidth(uint16 width) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((width)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get() internal view returns (uint16 height, uint16 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get() internal view returns (uint16 height, uint16 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(uint16 height, uint16 width) internal { + bytes memory _staticData = encodeStatic(height, width); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(uint16 height, uint16 width) internal { + bytes memory _staticData = encodeStatic(height, width); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (uint16 height, uint16 width) { + height = (uint16(Bytes.getBytes2(_blob, 0))); + + width = (uint16(Bytes.getBytes2(_blob, 2))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode(bytes memory _staticData, EncodedLengths, bytes memory) + internal + pure + returns (uint16 height, uint16 width) + { + (height, width) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord() internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord() internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(uint16 height, uint16 width) internal pure returns (bytes memory) { + return abi.encodePacked(height, width); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint16 height, uint16 width) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(height, width); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple() internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](0); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/MatchEntity.sol b/packages/contracts/src/codegen/tables/MatchEntity.sol index 7333f9719..098d62179 100644 --- a/packages/contracts/src/codegen/tables/MatchEntity.sol +++ b/packages/contracts/src/codegen/tables/MatchEntity.sol @@ -4,318 +4,313 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; struct MatchEntityData { - bytes32 encounterId; - int256 damageTaken; + bytes32 encounterId; + int256 damageTaken; } library MatchEntity { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MatchEntity", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d61746368456e746974790000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0040020020200000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bytes32, int256) - Schema constant _valueSchema = Schema.wrap(0x004002005f3f0000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "matchEntityId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "encounterId"; - fieldNames[1] = "damageTaken"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get encounterId. - */ - function getEncounterId(bytes32 matchEntityId) internal view returns (bytes32 encounterId) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (bytes32(_blob)); - } - - /** - * @notice Get encounterId. - */ - function _getEncounterId(bytes32 matchEntityId) internal view returns (bytes32 encounterId) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (bytes32(_blob)); - } - - /** - * @notice Set encounterId. - */ - function setEncounterId(bytes32 matchEntityId, bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((encounterId)), _fieldLayout); - } - - /** - * @notice Set encounterId. - */ - function _setEncounterId(bytes32 matchEntityId, bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((encounterId)), _fieldLayout); - } - - /** - * @notice Get damageTaken. - */ - function getDamageTaken(bytes32 matchEntityId) internal view returns (int256 damageTaken) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get damageTaken. - */ - function _getDamageTaken(bytes32 matchEntityId) internal view returns (int256 damageTaken) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set damageTaken. - */ - function setDamageTaken(bytes32 matchEntityId, int256 damageTaken) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((damageTaken)), _fieldLayout); - } - - /** - * @notice Set damageTaken. - */ - function _setDamageTaken(bytes32 matchEntityId, int256 damageTaken) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((damageTaken)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get(bytes32 matchEntityId) internal view returns (MatchEntityData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 matchEntityId) internal view returns (MatchEntityData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(bytes32 matchEntityId, bytes32 encounterId, int256 damageTaken) internal { - bytes memory _staticData = encodeStatic(encounterId, damageTaken); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(bytes32 matchEntityId, bytes32 encounterId, int256 damageTaken) internal { - bytes memory _staticData = encodeStatic(encounterId, damageTaken); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 matchEntityId, MatchEntityData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.encounterId, _table.damageTaken); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 matchEntityId, MatchEntityData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.encounterId, _table.damageTaken); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (bytes32 encounterId, int256 damageTaken) { - encounterId = (Bytes.getBytes32(_blob, 0)); - - damageTaken = (int256(uint256(Bytes.getBytes32(_blob, 32)))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode( - bytes memory _staticData, - EncodedLengths, - bytes memory - ) internal pure returns (MatchEntityData memory _table) { - (_table.encounterId, _table.damageTaken) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 matchEntityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 matchEntityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(bytes32 encounterId, int256 damageTaken) internal pure returns (bytes memory) { - return abi.encodePacked(encounterId, damageTaken); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - bytes32 encounterId, - int256 damageTaken - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(encounterId, damageTaken); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 matchEntityId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MatchEntity", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d61746368456e746974790000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0040020020200000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bytes32, int256) + Schema constant _valueSchema = Schema.wrap(0x004002005f3f0000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "matchEntityId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "encounterId"; + fieldNames[1] = "damageTaken"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get encounterId. + */ + function getEncounterId(bytes32 matchEntityId) internal view returns (bytes32 encounterId) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (bytes32(_blob)); + } + + /** + * @notice Get encounterId. + */ + function _getEncounterId(bytes32 matchEntityId) internal view returns (bytes32 encounterId) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (bytes32(_blob)); + } + + /** + * @notice Set encounterId. + */ + function setEncounterId(bytes32 matchEntityId, bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((encounterId)), _fieldLayout); + } + + /** + * @notice Set encounterId. + */ + function _setEncounterId(bytes32 matchEntityId, bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((encounterId)), _fieldLayout); + } + + /** + * @notice Get damageTaken. + */ + function getDamageTaken(bytes32 matchEntityId) internal view returns (int256 damageTaken) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get damageTaken. + */ + function _getDamageTaken(bytes32 matchEntityId) internal view returns (int256 damageTaken) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set damageTaken. + */ + function setDamageTaken(bytes32 matchEntityId, int256 damageTaken) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((damageTaken)), _fieldLayout); + } + + /** + * @notice Set damageTaken. + */ + function _setDamageTaken(bytes32 matchEntityId, int256 damageTaken) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((damageTaken)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get(bytes32 matchEntityId) internal view returns (MatchEntityData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 matchEntityId) internal view returns (MatchEntityData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(bytes32 matchEntityId, bytes32 encounterId, int256 damageTaken) internal { + bytes memory _staticData = encodeStatic(encounterId, damageTaken); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(bytes32 matchEntityId, bytes32 encounterId, int256 damageTaken) internal { + bytes memory _staticData = encodeStatic(encounterId, damageTaken); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 matchEntityId, MatchEntityData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.encounterId, _table.damageTaken); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 matchEntityId, MatchEntityData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.encounterId, _table.damageTaken); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (bytes32 encounterId, int256 damageTaken) { + encounterId = (Bytes.getBytes32(_blob, 0)); + + damageTaken = (int256(uint256(Bytes.getBytes32(_blob, 32)))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode(bytes memory _staticData, EncodedLengths, bytes memory) + internal + pure + returns (MatchEntityData memory _table) + { + (_table.encounterId, _table.damageTaken) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 matchEntityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 matchEntityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(bytes32 encounterId, int256 damageTaken) internal pure returns (bytes memory) { + return abi.encodePacked(encounterId, damageTaken); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(bytes32 encounterId, int256 damageTaken) + internal + pure + returns (bytes memory, EncodedLengths, bytes memory) + { + bytes memory _staticData = encodeStatic(encounterId, damageTaken); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 matchEntityId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Mobs.sol b/packages/contracts/src/codegen/tables/Mobs.sol index afda1d10e..626993865 100644 --- a/packages/contracts/src/codegen/tables/Mobs.sol +++ b/packages/contracts/src/codegen/tables/Mobs.sol @@ -4,649 +4,645 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import { MobType } from "./../common.sol"; +import {MobType} from "./../common.sol"; struct MobsData { - MobType mobType; - bytes mobStats; - string mobMetadata; + MobType mobType; + bytes mobStats; + string mobMetadata; } library Mobs { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Mobs", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6f6273000000000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010201000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint256) - Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint8, bytes, string) - Schema constant _valueSchema = Schema.wrap(0x0001010200c4c500000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "mobId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](3); - fieldNames[0] = "mobType"; - fieldNames[1] = "mobStats"; - fieldNames[2] = "mobMetadata"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get mobType. - */ - function getMobType(uint256 mobId) internal view returns (MobType mobType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return MobType(uint8(bytes1(_blob))); - } - - /** - * @notice Get mobType. - */ - function _getMobType(uint256 mobId) internal view returns (MobType mobType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return MobType(uint8(bytes1(_blob))); - } - - /** - * @notice Set mobType. - */ - function setMobType(uint256 mobId, MobType mobType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(mobType)), _fieldLayout); - } - - /** - * @notice Set mobType. - */ - function _setMobType(uint256 mobId, MobType mobType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(mobType)), _fieldLayout); - } - - /** - * @notice Get mobStats. - */ - function getMobStats(uint256 mobId) internal view returns (bytes memory mobStats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Get mobStats. - */ - function _getMobStats(uint256 mobId) internal view returns (bytes memory mobStats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Set mobStats. - */ - function setMobStats(uint256 mobId, bytes memory mobStats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((mobStats))); - } - - /** - * @notice Set mobStats. - */ - function _setMobStats(uint256 mobId, bytes memory mobStats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((mobStats))); - } - - /** - * @notice Get the length of mobStats. - */ - function lengthMobStats(uint256 mobId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of mobStats. - */ - function _lengthMobStats(uint256 mobId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of mobStats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemMobStats(uint256 mobId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Get an item of mobStats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemMobStats(uint256 mobId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Push a slice to mobStats. - */ - function pushMobStats(uint256 mobId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to mobStats. - */ - function _pushMobStats(uint256 mobId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Pop a slice from mobStats. - */ - function popMobStats(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from mobStats. - */ - function _popMobStats(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Update a slice of mobStats at `_index`. - */ - function updateMobStats(uint256 mobId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of mobStats at `_index`. - */ - function _updateMobStats(uint256 mobId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get mobMetadata. - */ - function getMobMetadata(uint256 mobId) internal view returns (string memory mobMetadata) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); - return (string(_blob)); - } - - /** - * @notice Get mobMetadata. - */ - function _getMobMetadata(uint256 mobId) internal view returns (string memory mobMetadata) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); - return (string(_blob)); - } - - /** - * @notice Set mobMetadata. - */ - function setMobMetadata(uint256 mobId, string memory mobMetadata) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, bytes((mobMetadata))); - } - - /** - * @notice Set mobMetadata. - */ - function _setMobMetadata(uint256 mobId, string memory mobMetadata) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 1, bytes((mobMetadata))); - } - - /** - * @notice Get the length of mobMetadata. - */ - function lengthMobMetadata(uint256 mobId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of mobMetadata. - */ - function _lengthMobMetadata(uint256 mobId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of mobMetadata. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemMobMetadata(uint256 mobId, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Get an item of mobMetadata. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemMobMetadata(uint256 mobId, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Push a slice to mobMetadata. - */ - function pushMobMetadata(uint256 mobId, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, bytes((_slice))); - } - - /** - * @notice Push a slice to mobMetadata. - */ - function _pushMobMetadata(uint256 mobId, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, bytes((_slice))); - } - - /** - * @notice Pop a slice from mobMetadata. - */ - function popMobMetadata(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 1); - } - - /** - * @notice Pop a slice from mobMetadata. - */ - function _popMobMetadata(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 1); - } - - /** - * @notice Update a slice of mobMetadata at `_index`. - */ - function updateMobMetadata(uint256 mobId, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of mobMetadata at `_index`. - */ - function _updateMobMetadata(uint256 mobId, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(uint256 mobId) internal view returns (MobsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(uint256 mobId) internal view returns (MobsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(uint256 mobId, MobType mobType, bytes memory mobStats, string memory mobMetadata) internal { - bytes memory _staticData = encodeStatic(mobType); - - EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); - bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(uint256 mobId, MobType mobType, bytes memory mobStats, string memory mobMetadata) internal { - bytes memory _staticData = encodeStatic(mobType); - - EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); - bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(uint256 mobId, MobsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.mobType); - - EncodedLengths _encodedLengths = encodeLengths(_table.mobStats, _table.mobMetadata); - bytes memory _dynamicData = encodeDynamic(_table.mobStats, _table.mobMetadata); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(uint256 mobId, MobsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.mobType); - - EncodedLengths _encodedLengths = encodeLengths(_table.mobStats, _table.mobMetadata); - bytes memory _dynamicData = encodeDynamic(_table.mobStats, _table.mobMetadata); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (MobType mobType) { - mobType = MobType(uint8(Bytes.getBytes1(_blob, 0))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic( - EncodedLengths _encodedLengths, - bytes memory _blob - ) internal pure returns (bytes memory mobStats, string memory mobMetadata) { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - mobStats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); - - _start = _end; - unchecked { - _end += _encodedLengths.atIndex(1); - } - mobMetadata = (string(SliceLib.getSubslice(_blob, _start, _end).toBytes())); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode( - bytes memory _staticData, - EncodedLengths _encodedLengths, - bytes memory _dynamicData - ) internal pure returns (MobsData memory _table) { - (_table.mobType) = decodeStatic(_staticData); - - (_table.mobStats, _table.mobMetadata) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(MobType mobType) internal pure returns (bytes memory) { - return abi.encodePacked(mobType); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths( - bytes memory mobStats, - string memory mobMetadata - ) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(bytes(mobStats).length, bytes(mobMetadata).length); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes memory mobStats, string memory mobMetadata) internal pure returns (bytes memory) { - return abi.encodePacked(bytes((mobStats)), bytes((mobMetadata))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - MobType mobType, - bytes memory mobStats, - string memory mobMetadata - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(mobType); - - EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); - bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint256 mobId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Mobs", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6f6273000000000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010201000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint256) + Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint8, bytes, string) + Schema constant _valueSchema = Schema.wrap(0x0001010200c4c500000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "mobId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](3); + fieldNames[0] = "mobType"; + fieldNames[1] = "mobStats"; + fieldNames[2] = "mobMetadata"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get mobType. + */ + function getMobType(uint256 mobId) internal view returns (MobType mobType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return MobType(uint8(bytes1(_blob))); + } + + /** + * @notice Get mobType. + */ + function _getMobType(uint256 mobId) internal view returns (MobType mobType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return MobType(uint8(bytes1(_blob))); + } + + /** + * @notice Set mobType. + */ + function setMobType(uint256 mobId, MobType mobType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(mobType)), _fieldLayout); + } + + /** + * @notice Set mobType. + */ + function _setMobType(uint256 mobId, MobType mobType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(mobType)), _fieldLayout); + } + + /** + * @notice Get mobStats. + */ + function getMobStats(uint256 mobId) internal view returns (bytes memory mobStats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Get mobStats. + */ + function _getMobStats(uint256 mobId) internal view returns (bytes memory mobStats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Set mobStats. + */ + function setMobStats(uint256 mobId, bytes memory mobStats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((mobStats))); + } + + /** + * @notice Set mobStats. + */ + function _setMobStats(uint256 mobId, bytes memory mobStats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((mobStats))); + } + + /** + * @notice Get the length of mobStats. + */ + function lengthMobStats(uint256 mobId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of mobStats. + */ + function _lengthMobStats(uint256 mobId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of mobStats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemMobStats(uint256 mobId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Get an item of mobStats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemMobStats(uint256 mobId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Push a slice to mobStats. + */ + function pushMobStats(uint256 mobId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to mobStats. + */ + function _pushMobStats(uint256 mobId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Pop a slice from mobStats. + */ + function popMobStats(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from mobStats. + */ + function _popMobStats(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Update a slice of mobStats at `_index`. + */ + function updateMobStats(uint256 mobId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of mobStats at `_index`. + */ + function _updateMobStats(uint256 mobId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get mobMetadata. + */ + function getMobMetadata(uint256 mobId) internal view returns (string memory mobMetadata) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); + return (string(_blob)); + } + + /** + * @notice Get mobMetadata. + */ + function _getMobMetadata(uint256 mobId) internal view returns (string memory mobMetadata) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); + return (string(_blob)); + } + + /** + * @notice Set mobMetadata. + */ + function setMobMetadata(uint256 mobId, string memory mobMetadata) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, bytes((mobMetadata))); + } + + /** + * @notice Set mobMetadata. + */ + function _setMobMetadata(uint256 mobId, string memory mobMetadata) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 1, bytes((mobMetadata))); + } + + /** + * @notice Get the length of mobMetadata. + */ + function lengthMobMetadata(uint256 mobId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of mobMetadata. + */ + function _lengthMobMetadata(uint256 mobId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of mobMetadata. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemMobMetadata(uint256 mobId, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Get an item of mobMetadata. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemMobMetadata(uint256 mobId, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Push a slice to mobMetadata. + */ + function pushMobMetadata(uint256 mobId, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, bytes((_slice))); + } + + /** + * @notice Push a slice to mobMetadata. + */ + function _pushMobMetadata(uint256 mobId, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, bytes((_slice))); + } + + /** + * @notice Pop a slice from mobMetadata. + */ + function popMobMetadata(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 1); + } + + /** + * @notice Pop a slice from mobMetadata. + */ + function _popMobMetadata(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 1); + } + + /** + * @notice Update a slice of mobMetadata at `_index`. + */ + function updateMobMetadata(uint256 mobId, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of mobMetadata at `_index`. + */ + function _updateMobMetadata(uint256 mobId, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(uint256 mobId) internal view returns (MobsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(uint256 mobId) internal view returns (MobsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(uint256 mobId, MobType mobType, bytes memory mobStats, string memory mobMetadata) internal { + bytes memory _staticData = encodeStatic(mobType); + + EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); + bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(uint256 mobId, MobType mobType, bytes memory mobStats, string memory mobMetadata) internal { + bytes memory _staticData = encodeStatic(mobType); + + EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); + bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(uint256 mobId, MobsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.mobType); + + EncodedLengths _encodedLengths = encodeLengths(_table.mobStats, _table.mobMetadata); + bytes memory _dynamicData = encodeDynamic(_table.mobStats, _table.mobMetadata); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(uint256 mobId, MobsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.mobType); + + EncodedLengths _encodedLengths = encodeLengths(_table.mobStats, _table.mobMetadata); + bytes memory _dynamicData = encodeDynamic(_table.mobStats, _table.mobMetadata); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (MobType mobType) { + mobType = MobType(uint8(Bytes.getBytes1(_blob, 0))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) + internal + pure + returns (bytes memory mobStats, string memory mobMetadata) + { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + mobStats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); + + _start = _end; + unchecked { + _end += _encodedLengths.atIndex(1); + } + mobMetadata = (string(SliceLib.getSubslice(_blob, _start, _end).toBytes())); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) + internal + pure + returns (MobsData memory _table) + { + (_table.mobType) = decodeStatic(_staticData); + + (_table.mobStats, _table.mobMetadata) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(MobType mobType) internal pure returns (bytes memory) { + return abi.encodePacked(mobType); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(bytes memory mobStats, string memory mobMetadata) + internal + pure + returns (EncodedLengths _encodedLengths) + { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(bytes(mobStats).length, bytes(mobMetadata).length); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes memory mobStats, string memory mobMetadata) internal pure returns (bytes memory) { + return abi.encodePacked(bytes((mobStats)), bytes((mobMetadata))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(MobType mobType, bytes memory mobStats, string memory mobMetadata) + internal + pure + returns (bytes memory, EncodedLengths, bytes memory) + { + bytes memory _staticData = encodeStatic(mobType); + + EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); + bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint256 mobId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/MobsByLevel.sol b/packages/contracts/src/codegen/tables/MobsByLevel.sol index 8a401ad46..9e3405e43 100644 --- a/packages/contracts/src/codegen/tables/MobsByLevel.sol +++ b/packages/contracts/src/codegen/tables/MobsByLevel.sol @@ -4,446 +4,452 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; library MobsByLevel { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MobsByLevel", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6f627342794c6576656c0000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint256) - Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256[]) - Schema constant _valueSchema = Schema.wrap(0x0000000181000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "level"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "mobIds"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get mobIds. - */ - function getMobIds(uint256 level) internal view returns (uint256[] memory mobIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get mobIds. - */ - function _getMobIds(uint256 level) internal view returns (uint256[] memory mobIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get mobIds. - */ - function get(uint256 level) internal view returns (uint256[] memory mobIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get mobIds. - */ - function _get(uint256 level) internal view returns (uint256[] memory mobIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Set mobIds. - */ - function setMobIds(uint256 level, uint256[] memory mobIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); - } - - /** - * @notice Set mobIds. - */ - function _setMobIds(uint256 level, uint256[] memory mobIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); - } - - /** - * @notice Set mobIds. - */ - function set(uint256 level, uint256[] memory mobIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); - } - - /** - * @notice Set mobIds. - */ - function _set(uint256 level, uint256[] memory mobIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); - } - - /** - * @notice Get the length of mobIds. - */ - function lengthMobIds(uint256 level) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of mobIds. - */ - function _lengthMobIds(uint256 level) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of mobIds. - */ - function length(uint256 level) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of mobIds. - */ - function _length(uint256 level) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of mobIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemMobIds(uint256 level, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of mobIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemMobIds(uint256 level, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of mobIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItem(uint256 level, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of mobIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItem(uint256 level, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Push an element to mobIds. - */ - function pushMobIds(uint256 level, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to mobIds. - */ - function _pushMobIds(uint256 level, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to mobIds. - */ - function push(uint256 level, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to mobIds. - */ - function _push(uint256 level, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from mobIds. - */ - function popMobIds(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from mobIds. - */ - function _popMobIds(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from mobIds. - */ - function pop(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from mobIds. - */ - function _pop(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Update an element of mobIds at `_index`. - */ - function updateMobIds(uint256 level, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of mobIds at `_index`. - */ - function _updateMobIds(uint256 level, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of mobIds at `_index`. - */ - function update(uint256 level, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of mobIds at `_index`. - */ - function _update(uint256 level, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(uint256[] memory mobIds) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(mobIds.length * 32); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(uint256[] memory mobIds) internal pure returns (bytes memory) { - return abi.encodePacked(EncodeArray.encode((mobIds))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint256[] memory mobIds) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(mobIds); - bytes memory _dynamicData = encodeDynamic(mobIds); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint256 level) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MobsByLevel", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6f627342794c6576656c0000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint256) + Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256[]) + Schema constant _valueSchema = Schema.wrap(0x0000000181000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "level"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "mobIds"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get mobIds. + */ + function getMobIds(uint256 level) internal view returns (uint256[] memory mobIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get mobIds. + */ + function _getMobIds(uint256 level) internal view returns (uint256[] memory mobIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get mobIds. + */ + function get(uint256 level) internal view returns (uint256[] memory mobIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get mobIds. + */ + function _get(uint256 level) internal view returns (uint256[] memory mobIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Set mobIds. + */ + function setMobIds(uint256 level, uint256[] memory mobIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); + } + + /** + * @notice Set mobIds. + */ + function _setMobIds(uint256 level, uint256[] memory mobIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); + } + + /** + * @notice Set mobIds. + */ + function set(uint256 level, uint256[] memory mobIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); + } + + /** + * @notice Set mobIds. + */ + function _set(uint256 level, uint256[] memory mobIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); + } + + /** + * @notice Get the length of mobIds. + */ + function lengthMobIds(uint256 level) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of mobIds. + */ + function _lengthMobIds(uint256 level) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of mobIds. + */ + function length(uint256 level) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of mobIds. + */ + function _length(uint256 level) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of mobIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemMobIds(uint256 level, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _blob = + StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of mobIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemMobIds(uint256 level, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of mobIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItem(uint256 level, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _blob = + StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of mobIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItem(uint256 level, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Push an element to mobIds. + */ + function pushMobIds(uint256 level, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to mobIds. + */ + function _pushMobIds(uint256 level, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to mobIds. + */ + function push(uint256 level, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to mobIds. + */ + function _push(uint256 level, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from mobIds. + */ + function popMobIds(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from mobIds. + */ + function _popMobIds(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from mobIds. + */ + function pop(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from mobIds. + */ + function _pop(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Update an element of mobIds at `_index`. + */ + function updateMobIds(uint256 level, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData( + _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded + ); + } + } + + /** + * @notice Update an element of mobIds at `_index`. + */ + function _updateMobIds(uint256 level, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of mobIds at `_index`. + */ + function update(uint256 level, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData( + _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded + ); + } + } + + /** + * @notice Update an element of mobIds at `_index`. + */ + function _update(uint256 level, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(uint256[] memory mobIds) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(mobIds.length * 32); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(uint256[] memory mobIds) internal pure returns (bytes memory) { + return abi.encodePacked(EncodeArray.encode((mobIds))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint256[] memory mobIds) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(mobIds); + bytes memory _dynamicData = encodeDynamic(mobIds); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint256 level) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Name.sol b/packages/contracts/src/codegen/tables/Name.sol index 457c9c4bd..567382000 100644 --- a/packages/contracts/src/codegen/tables/Name.sol +++ b/packages/contracts/src/codegen/tables/Name.sol @@ -4,446 +4,446 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; library Name { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Name", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004e616d65000000000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (string) - Schema constant _valueSchema = Schema.wrap(0x00000001c5000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "id"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "value"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get value. - */ - function getValue(bytes32 id) internal view returns (string memory value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (string(_blob)); - } - - /** - * @notice Get value. - */ - function _getValue(bytes32 id) internal view returns (string memory value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (string(_blob)); - } - - /** - * @notice Get value. - */ - function get(bytes32 id) internal view returns (string memory value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (string(_blob)); - } - - /** - * @notice Get value. - */ - function _get(bytes32 id) internal view returns (string memory value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (string(_blob)); - } - - /** - * @notice Set value. - */ - function setValue(bytes32 id, string memory value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); - } - - /** - * @notice Set value. - */ - function _setValue(bytes32 id, string memory value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); - } - - /** - * @notice Set value. - */ - function set(bytes32 id, string memory value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); - } - - /** - * @notice Set value. - */ - function _set(bytes32 id, string memory value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); - } - - /** - * @notice Get the length of value. - */ - function lengthValue(bytes32 id) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of value. - */ - function _lengthValue(bytes32 id) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of value. - */ - function length(bytes32 id) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of value. - */ - function _length(bytes32 id) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of value. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemValue(bytes32 id, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Get an item of value. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemValue(bytes32 id, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Get an item of value. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItem(bytes32 id, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Get an item of value. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItem(bytes32 id, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Push a slice to value. - */ - function pushValue(bytes32 id, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to value. - */ - function _pushValue(bytes32 id, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to value. - */ - function push(bytes32 id, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to value. - */ - function _push(bytes32 id, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Pop a slice from value. - */ - function popValue(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from value. - */ - function _popValue(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from value. - */ - function pop(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from value. - */ - function _pop(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Update a slice of value at `_index`. - */ - function updateValue(bytes32 id, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of value at `_index`. - */ - function _updateValue(bytes32 id, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of value at `_index`. - */ - function update(bytes32 id, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of value at `_index`. - */ - function _update(bytes32 id, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(string memory value) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(bytes(value).length); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(string memory value) internal pure returns (bytes memory) { - return abi.encodePacked(bytes((value))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(string memory value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(value); - bytes memory _dynamicData = encodeDynamic(value); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 id) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Name", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004e616d65000000000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (string) + Schema constant _valueSchema = Schema.wrap(0x00000001c5000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "id"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "value"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get value. + */ + function getValue(bytes32 id) internal view returns (string memory value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (string(_blob)); + } + + /** + * @notice Get value. + */ + function _getValue(bytes32 id) internal view returns (string memory value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (string(_blob)); + } + + /** + * @notice Get value. + */ + function get(bytes32 id) internal view returns (string memory value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (string(_blob)); + } + + /** + * @notice Get value. + */ + function _get(bytes32 id) internal view returns (string memory value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (string(_blob)); + } + + /** + * @notice Set value. + */ + function setValue(bytes32 id, string memory value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); + } + + /** + * @notice Set value. + */ + function _setValue(bytes32 id, string memory value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); + } + + /** + * @notice Set value. + */ + function set(bytes32 id, string memory value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); + } + + /** + * @notice Set value. + */ + function _set(bytes32 id, string memory value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); + } + + /** + * @notice Get the length of value. + */ + function lengthValue(bytes32 id) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of value. + */ + function _lengthValue(bytes32 id) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of value. + */ + function length(bytes32 id) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of value. + */ + function _length(bytes32 id) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of value. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemValue(bytes32 id, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Get an item of value. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemValue(bytes32 id, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Get an item of value. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItem(bytes32 id, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Get an item of value. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItem(bytes32 id, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Push a slice to value. + */ + function pushValue(bytes32 id, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to value. + */ + function _pushValue(bytes32 id, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to value. + */ + function push(bytes32 id, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to value. + */ + function _push(bytes32 id, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Pop a slice from value. + */ + function popValue(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from value. + */ + function _popValue(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from value. + */ + function pop(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from value. + */ + function _pop(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Update a slice of value at `_index`. + */ + function updateValue(bytes32 id, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of value at `_index`. + */ + function _updateValue(bytes32 id, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of value at `_index`. + */ + function update(bytes32 id, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of value at `_index`. + */ + function _update(bytes32 id, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(string memory value) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(bytes(value).length); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(string memory value) internal pure returns (bytes memory) { + return abi.encodePacked(bytes((value))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(string memory value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(value); + bytes memory _dynamicData = encodeDynamic(value); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 id) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/NameExists.sol b/packages/contracts/src/codegen/tables/NameExists.sol index ff68229ed..d73781b26 100644 --- a/packages/contracts/src/codegen/tables/NameExists.sol +++ b/packages/contracts/src/codegen/tables/NameExists.sol @@ -4,198 +4,198 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; library NameExists { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "NameExists", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004e616d65457869737473000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bool) - Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "nameData"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "value"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get value. - */ - function getValue(bytes32 nameData) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function _getValue(bytes32 nameData) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function get(bytes32 nameData) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function _get(bytes32 nameData) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Set value. - */ - function setValue(bytes32 nameData, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function _setValue(bytes32 nameData, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function set(bytes32 nameData, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function _set(bytes32 nameData, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 nameData) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 nameData) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(bool value) internal pure returns (bytes memory) { - return abi.encodePacked(value); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(bool value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(value); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 nameData) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "NameExists", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004e616d65457869737473000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bool) + Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "nameData"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "value"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get value. + */ + function getValue(bytes32 nameData) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function _getValue(bytes32 nameData) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function get(bytes32 nameData) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function _get(bytes32 nameData) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Set value. + */ + function setValue(bytes32 nameData, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function _setValue(bytes32 nameData, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function set(bytes32 nameData, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function _set(bytes32 nameData, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 nameData) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 nameData) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(bool value) internal pure returns (bytes memory) { + return abi.encodePacked(value); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(bool value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(value); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 nameData) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + return _keyTuple; + } } /** @@ -205,7 +205,7 @@ library NameExists { * @return result The boolean value. */ function _toBool(uint8 value) pure returns (bool result) { - assembly { - result := value - } + assembly { + result := value + } } diff --git a/packages/contracts/src/codegen/tables/Position.sol b/packages/contracts/src/codegen/tables/Position.sol index 67bcacf09..632db1f04 100644 --- a/packages/contracts/src/codegen/tables/Position.sol +++ b/packages/contracts/src/codegen/tables/Position.sol @@ -4,276 +4,274 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; library Position { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Position", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000506f736974696f6e0000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0004020002020000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint16, uint16) - Schema constant _valueSchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "entity"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "x"; - fieldNames[1] = "y"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get x. - */ - function getX(bytes32 entity) internal view returns (uint16 x) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Get x. - */ - function _getX(bytes32 entity) internal view returns (uint16 x) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Set x. - */ - function setX(bytes32 entity, uint16 x) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((x)), _fieldLayout); - } - - /** - * @notice Set x. - */ - function _setX(bytes32 entity, uint16 x) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((x)), _fieldLayout); - } - - /** - * @notice Get y. - */ - function getY(bytes32 entity) internal view returns (uint16 y) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Get y. - */ - function _getY(bytes32 entity) internal view returns (uint16 y) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Set y. - */ - function setY(bytes32 entity, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((y)), _fieldLayout); - } - - /** - * @notice Set y. - */ - function _setY(bytes32 entity, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((y)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get(bytes32 entity) internal view returns (uint16 x, uint16 y) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 entity) internal view returns (uint16 x, uint16 y) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(bytes32 entity, uint16 x, uint16 y) internal { - bytes memory _staticData = encodeStatic(x, y); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(bytes32 entity, uint16 x, uint16 y) internal { - bytes memory _staticData = encodeStatic(x, y); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (uint16 x, uint16 y) { - x = (uint16(Bytes.getBytes2(_blob, 0))); - - y = (uint16(Bytes.getBytes2(_blob, 2))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode(bytes memory _staticData, EncodedLengths, bytes memory) internal pure returns (uint16 x, uint16 y) { - (x, y) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 entity) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 entity) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(uint16 x, uint16 y) internal pure returns (bytes memory) { - return abi.encodePacked(x, y); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint16 x, uint16 y) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(x, y); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 entity) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Position", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000506f736974696f6e0000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0004020002020000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint16, uint16) + Schema constant _valueSchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "entity"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "x"; + fieldNames[1] = "y"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get x. + */ + function getX(bytes32 entity) internal view returns (uint16 x) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Get x. + */ + function _getX(bytes32 entity) internal view returns (uint16 x) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Set x. + */ + function setX(bytes32 entity, uint16 x) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((x)), _fieldLayout); + } + + /** + * @notice Set x. + */ + function _setX(bytes32 entity, uint16 x) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((x)), _fieldLayout); + } + + /** + * @notice Get y. + */ + function getY(bytes32 entity) internal view returns (uint16 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Get y. + */ + function _getY(bytes32 entity) internal view returns (uint16 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Set y. + */ + function setY(bytes32 entity, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((y)), _fieldLayout); + } + + /** + * @notice Set y. + */ + function _setY(bytes32 entity, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((y)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get(bytes32 entity) internal view returns (uint16 x, uint16 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 entity) internal view returns (uint16 x, uint16 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(bytes32 entity, uint16 x, uint16 y) internal { + bytes memory _staticData = encodeStatic(x, y); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(bytes32 entity, uint16 x, uint16 y) internal { + bytes memory _staticData = encodeStatic(x, y); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (uint16 x, uint16 y) { + x = (uint16(Bytes.getBytes2(_blob, 0))); + + y = (uint16(Bytes.getBytes2(_blob, 2))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode(bytes memory _staticData, EncodedLengths, bytes memory) + internal + pure + returns (uint16 x, uint16 y) + { + (x, y) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 entity) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 entity) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(uint16 x, uint16 y) internal pure returns (bytes memory) { + return abi.encodePacked(x, y); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint16 x, uint16 y) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(x, y); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 entity) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/RandomNumbers.sol b/packages/contracts/src/codegen/tables/RandomNumbers.sol index 82c210a9c..4b24b193f 100644 --- a/packages/contracts/src/codegen/tables/RandomNumbers.sol +++ b/packages/contracts/src/codegen/tables/RandomNumbers.sol @@ -4,475 +4,471 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import { RngRequestType } from "./../common.sol"; +import {RngRequestType} from "./../common.sol"; struct RandomNumbersData { - RngRequestType RequestType; - bytes arbitraryData; + RngRequestType RequestType; + bytes arbitraryData; } library RandomNumbers { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "RandomNumbers", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000052616e646f6d4e756d62657273000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010101000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint64) - Schema constant _keySchema = Schema.wrap(0x0008010007000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint8, bytes) - Schema constant _valueSchema = Schema.wrap(0x0001010100c40000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "sequenceNumber"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "RequestType"; - fieldNames[1] = "arbitraryData"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get RequestType. - */ - function getRequestType(uint64 sequenceNumber) internal view returns (RngRequestType RequestType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return RngRequestType(uint8(bytes1(_blob))); - } - - /** - * @notice Get RequestType. - */ - function _getRequestType(uint64 sequenceNumber) internal view returns (RngRequestType RequestType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return RngRequestType(uint8(bytes1(_blob))); - } - - /** - * @notice Set RequestType. - */ - function setRequestType(uint64 sequenceNumber, RngRequestType RequestType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(RequestType)), _fieldLayout); - } - - /** - * @notice Set RequestType. - */ - function _setRequestType(uint64 sequenceNumber, RngRequestType RequestType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(RequestType)), _fieldLayout); - } - - /** - * @notice Get arbitraryData. - */ - function getArbitraryData(uint64 sequenceNumber) internal view returns (bytes memory arbitraryData) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Get arbitraryData. - */ - function _getArbitraryData(uint64 sequenceNumber) internal view returns (bytes memory arbitraryData) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Set arbitraryData. - */ - function setArbitraryData(uint64 sequenceNumber, bytes memory arbitraryData) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((arbitraryData))); - } - - /** - * @notice Set arbitraryData. - */ - function _setArbitraryData(uint64 sequenceNumber, bytes memory arbitraryData) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((arbitraryData))); - } - - /** - * @notice Get the length of arbitraryData. - */ - function lengthArbitraryData(uint64 sequenceNumber) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of arbitraryData. - */ - function _lengthArbitraryData(uint64 sequenceNumber) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of arbitraryData. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemArbitraryData(uint64 sequenceNumber, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Get an item of arbitraryData. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemArbitraryData(uint64 sequenceNumber, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Push a slice to arbitraryData. - */ - function pushArbitraryData(uint64 sequenceNumber, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to arbitraryData. - */ - function _pushArbitraryData(uint64 sequenceNumber, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Pop a slice from arbitraryData. - */ - function popArbitraryData(uint64 sequenceNumber) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from arbitraryData. - */ - function _popArbitraryData(uint64 sequenceNumber) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Update a slice of arbitraryData at `_index`. - */ - function updateArbitraryData(uint64 sequenceNumber, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of arbitraryData at `_index`. - */ - function _updateArbitraryData(uint64 sequenceNumber, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(uint64 sequenceNumber) internal view returns (RandomNumbersData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(uint64 sequenceNumber) internal view returns (RandomNumbersData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(uint64 sequenceNumber, RngRequestType RequestType, bytes memory arbitraryData) internal { - bytes memory _staticData = encodeStatic(RequestType); - - EncodedLengths _encodedLengths = encodeLengths(arbitraryData); - bytes memory _dynamicData = encodeDynamic(arbitraryData); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(uint64 sequenceNumber, RngRequestType RequestType, bytes memory arbitraryData) internal { - bytes memory _staticData = encodeStatic(RequestType); - - EncodedLengths _encodedLengths = encodeLengths(arbitraryData); - bytes memory _dynamicData = encodeDynamic(arbitraryData); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(uint64 sequenceNumber, RandomNumbersData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.RequestType); - - EncodedLengths _encodedLengths = encodeLengths(_table.arbitraryData); - bytes memory _dynamicData = encodeDynamic(_table.arbitraryData); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(uint64 sequenceNumber, RandomNumbersData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.RequestType); - - EncodedLengths _encodedLengths = encodeLengths(_table.arbitraryData); - bytes memory _dynamicData = encodeDynamic(_table.arbitraryData); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (RngRequestType RequestType) { - RequestType = RngRequestType(uint8(Bytes.getBytes1(_blob, 0))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic( - EncodedLengths _encodedLengths, - bytes memory _blob - ) internal pure returns (bytes memory arbitraryData) { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - arbitraryData = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode( - bytes memory _staticData, - EncodedLengths _encodedLengths, - bytes memory _dynamicData - ) internal pure returns (RandomNumbersData memory _table) { - (_table.RequestType) = decodeStatic(_staticData); - - (_table.arbitraryData) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint64 sequenceNumber) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint64 sequenceNumber) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(RngRequestType RequestType) internal pure returns (bytes memory) { - return abi.encodePacked(RequestType); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(bytes memory arbitraryData) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(bytes(arbitraryData).length); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes memory arbitraryData) internal pure returns (bytes memory) { - return abi.encodePacked(bytes((arbitraryData))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - RngRequestType RequestType, - bytes memory arbitraryData - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(RequestType); - - EncodedLengths _encodedLengths = encodeLengths(arbitraryData); - bytes memory _dynamicData = encodeDynamic(arbitraryData); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint64 sequenceNumber) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "RandomNumbers", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000052616e646f6d4e756d62657273000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010101000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint64) + Schema constant _keySchema = Schema.wrap(0x0008010007000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint8, bytes) + Schema constant _valueSchema = Schema.wrap(0x0001010100c40000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "sequenceNumber"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "RequestType"; + fieldNames[1] = "arbitraryData"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get RequestType. + */ + function getRequestType(uint64 sequenceNumber) internal view returns (RngRequestType RequestType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return RngRequestType(uint8(bytes1(_blob))); + } + + /** + * @notice Get RequestType. + */ + function _getRequestType(uint64 sequenceNumber) internal view returns (RngRequestType RequestType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return RngRequestType(uint8(bytes1(_blob))); + } + + /** + * @notice Set RequestType. + */ + function setRequestType(uint64 sequenceNumber, RngRequestType RequestType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(RequestType)), _fieldLayout); + } + + /** + * @notice Set RequestType. + */ + function _setRequestType(uint64 sequenceNumber, RngRequestType RequestType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(RequestType)), _fieldLayout); + } + + /** + * @notice Get arbitraryData. + */ + function getArbitraryData(uint64 sequenceNumber) internal view returns (bytes memory arbitraryData) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Get arbitraryData. + */ + function _getArbitraryData(uint64 sequenceNumber) internal view returns (bytes memory arbitraryData) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Set arbitraryData. + */ + function setArbitraryData(uint64 sequenceNumber, bytes memory arbitraryData) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((arbitraryData))); + } + + /** + * @notice Set arbitraryData. + */ + function _setArbitraryData(uint64 sequenceNumber, bytes memory arbitraryData) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((arbitraryData))); + } + + /** + * @notice Get the length of arbitraryData. + */ + function lengthArbitraryData(uint64 sequenceNumber) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of arbitraryData. + */ + function _lengthArbitraryData(uint64 sequenceNumber) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of arbitraryData. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemArbitraryData(uint64 sequenceNumber, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Get an item of arbitraryData. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemArbitraryData(uint64 sequenceNumber, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Push a slice to arbitraryData. + */ + function pushArbitraryData(uint64 sequenceNumber, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to arbitraryData. + */ + function _pushArbitraryData(uint64 sequenceNumber, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Pop a slice from arbitraryData. + */ + function popArbitraryData(uint64 sequenceNumber) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from arbitraryData. + */ + function _popArbitraryData(uint64 sequenceNumber) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Update a slice of arbitraryData at `_index`. + */ + function updateArbitraryData(uint64 sequenceNumber, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of arbitraryData at `_index`. + */ + function _updateArbitraryData(uint64 sequenceNumber, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(uint64 sequenceNumber) internal view returns (RandomNumbersData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(uint64 sequenceNumber) internal view returns (RandomNumbersData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(uint64 sequenceNumber, RngRequestType RequestType, bytes memory arbitraryData) internal { + bytes memory _staticData = encodeStatic(RequestType); + + EncodedLengths _encodedLengths = encodeLengths(arbitraryData); + bytes memory _dynamicData = encodeDynamic(arbitraryData); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(uint64 sequenceNumber, RngRequestType RequestType, bytes memory arbitraryData) internal { + bytes memory _staticData = encodeStatic(RequestType); + + EncodedLengths _encodedLengths = encodeLengths(arbitraryData); + bytes memory _dynamicData = encodeDynamic(arbitraryData); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(uint64 sequenceNumber, RandomNumbersData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.RequestType); + + EncodedLengths _encodedLengths = encodeLengths(_table.arbitraryData); + bytes memory _dynamicData = encodeDynamic(_table.arbitraryData); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(uint64 sequenceNumber, RandomNumbersData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.RequestType); + + EncodedLengths _encodedLengths = encodeLengths(_table.arbitraryData); + bytes memory _dynamicData = encodeDynamic(_table.arbitraryData); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (RngRequestType RequestType) { + RequestType = RngRequestType(uint8(Bytes.getBytes1(_blob, 0))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) + internal + pure + returns (bytes memory arbitraryData) + { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + arbitraryData = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) + internal + pure + returns (RandomNumbersData memory _table) + { + (_table.RequestType) = decodeStatic(_staticData); + + (_table.arbitraryData) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint64 sequenceNumber) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint64 sequenceNumber) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(RngRequestType RequestType) internal pure returns (bytes memory) { + return abi.encodePacked(RequestType); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(bytes memory arbitraryData) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(bytes(arbitraryData).length); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes memory arbitraryData) internal pure returns (bytes memory) { + return abi.encodePacked(bytes((arbitraryData))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(RngRequestType RequestType, bytes memory arbitraryData) + internal + pure + returns (bytes memory, EncodedLengths, bytes memory) + { + bytes memory _staticData = encodeStatic(RequestType); + + EncodedLengths _encodedLengths = encodeLengths(arbitraryData); + bytes memory _dynamicData = encodeDynamic(arbitraryData); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint64 sequenceNumber) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Spawned.sol b/packages/contracts/src/codegen/tables/Spawned.sol index 0c6ba659f..96be9ded0 100644 --- a/packages/contracts/src/codegen/tables/Spawned.sol +++ b/packages/contracts/src/codegen/tables/Spawned.sol @@ -4,198 +4,198 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; library Spawned { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Spawned", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000537061776e6564000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bool) - Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "entityId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "spawned"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get spawned. - */ - function getSpawned(bytes32 entityId) internal view returns (bool spawned) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get spawned. - */ - function _getSpawned(bytes32 entityId) internal view returns (bool spawned) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get spawned. - */ - function get(bytes32 entityId) internal view returns (bool spawned) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get spawned. - */ - function _get(bytes32 entityId) internal view returns (bool spawned) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Set spawned. - */ - function setSpawned(bytes32 entityId, bool spawned) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); - } - - /** - * @notice Set spawned. - */ - function _setSpawned(bytes32 entityId, bool spawned) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); - } - - /** - * @notice Set spawned. - */ - function set(bytes32 entityId, bool spawned) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); - } - - /** - * @notice Set spawned. - */ - function _set(bytes32 entityId, bool spawned) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 entityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 entityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(bool spawned) internal pure returns (bytes memory) { - return abi.encodePacked(spawned); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(bool spawned) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(spawned); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 entityId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Spawned", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000537061776e6564000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bool) + Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "entityId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "spawned"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get spawned. + */ + function getSpawned(bytes32 entityId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get spawned. + */ + function _getSpawned(bytes32 entityId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get spawned. + */ + function get(bytes32 entityId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get spawned. + */ + function _get(bytes32 entityId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Set spawned. + */ + function setSpawned(bytes32 entityId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Set spawned. + */ + function _setSpawned(bytes32 entityId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Set spawned. + */ + function set(bytes32 entityId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Set spawned. + */ + function _set(bytes32 entityId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 entityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 entityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(bool spawned) internal pure returns (bytes memory) { + return abi.encodePacked(spawned); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(bool spawned) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(spawned); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 entityId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + return _keyTuple; + } } /** @@ -205,7 +205,7 @@ library Spawned { * @return result The boolean value. */ function _toBool(uint8 value) pure returns (bool result) { - assembly { - result := value - } + assembly { + result := value + } } diff --git a/packages/contracts/src/codegen/tables/StarterItems.sol b/packages/contracts/src/codegen/tables/StarterItems.sol index 7bb79c000..5f74bfd11 100644 --- a/packages/contracts/src/codegen/tables/StarterItems.sol +++ b/packages/contracts/src/codegen/tables/StarterItems.sol @@ -4,582 +4,585 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import { Classes } from "./../common.sol"; +import {Classes} from "./../common.sol"; struct StarterItemsData { - uint256[] itemIds; - uint256[] amounts; + uint256[] itemIds; + uint256[] amounts; } library StarterItems { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "StarterItems", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000537461727465724974656d7300000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0000000200000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint8) - Schema constant _keySchema = Schema.wrap(0x0001010000000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256[], uint256[]) - Schema constant _valueSchema = Schema.wrap(0x0000000281810000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "class"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "itemIds"; - fieldNames[1] = "amounts"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get itemIds. - */ - function getItemIds(Classes class) internal view returns (uint256[] memory itemIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get itemIds. - */ - function _getItemIds(Classes class) internal view returns (uint256[] memory itemIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Set itemIds. - */ - function setItemIds(Classes class, uint256[] memory itemIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((itemIds))); - } - - /** - * @notice Set itemIds. - */ - function _setItemIds(Classes class, uint256[] memory itemIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((itemIds))); - } - - /** - * @notice Get the length of itemIds. - */ - function lengthItemIds(Classes class) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of itemIds. - */ - function _lengthItemIds(Classes class) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of itemIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemItemIds(Classes class, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of itemIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemItemIds(Classes class, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Push an element to itemIds. - */ - function pushItemIds(Classes class, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to itemIds. - */ - function _pushItemIds(Classes class, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from itemIds. - */ - function popItemIds(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from itemIds. - */ - function _popItemIds(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Update an element of itemIds at `_index`. - */ - function updateItemIds(Classes class, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of itemIds at `_index`. - */ - function _updateItemIds(Classes class, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get amounts. - */ - function getAmounts(Classes class) internal view returns (uint256[] memory amounts) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get amounts. - */ - function _getAmounts(Classes class) internal view returns (uint256[] memory amounts) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Set amounts. - */ - function setAmounts(Classes class, uint256[] memory amounts) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((amounts))); - } - - /** - * @notice Set amounts. - */ - function _setAmounts(Classes class, uint256[] memory amounts) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((amounts))); - } - - /** - * @notice Get the length of amounts. - */ - function lengthAmounts(Classes class) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of amounts. - */ - function _lengthAmounts(Classes class) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of amounts. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemAmounts(Classes class, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of amounts. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemAmounts(Classes class, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Push an element to amounts. - */ - function pushAmounts(Classes class, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to amounts. - */ - function _pushAmounts(Classes class, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from amounts. - */ - function popAmounts(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Pop an element from amounts. - */ - function _popAmounts(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Update an element of amounts at `_index`. - */ - function updateAmounts(Classes class, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of amounts at `_index`. - */ - function _updateAmounts(Classes class, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(Classes class) internal view returns (StarterItemsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(Classes class) internal view returns (StarterItemsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(Classes class, uint256[] memory itemIds, uint256[] memory amounts) internal { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); - bytes memory _dynamicData = encodeDynamic(itemIds, amounts); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(Classes class, uint256[] memory itemIds, uint256[] memory amounts) internal { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); - bytes memory _dynamicData = encodeDynamic(itemIds, amounts); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(Classes class, StarterItemsData memory _table) internal { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(_table.itemIds, _table.amounts); - bytes memory _dynamicData = encodeDynamic(_table.itemIds, _table.amounts); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(Classes class, StarterItemsData memory _table) internal { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(_table.itemIds, _table.amounts); - bytes memory _dynamicData = encodeDynamic(_table.itemIds, _table.amounts); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic( - EncodedLengths _encodedLengths, - bytes memory _blob - ) internal pure returns (uint256[] memory itemIds, uint256[] memory amounts) { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - itemIds = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); - - _start = _end; - unchecked { - _end += _encodedLengths.atIndex(1); - } - amounts = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode( - bytes memory, - EncodedLengths _encodedLengths, - bytes memory _dynamicData - ) internal pure returns (StarterItemsData memory _table) { - (_table.itemIds, _table.amounts) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths( - uint256[] memory itemIds, - uint256[] memory amounts - ) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(itemIds.length * 32, amounts.length * 32); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(uint256[] memory itemIds, uint256[] memory amounts) internal pure returns (bytes memory) { - return abi.encodePacked(EncodeArray.encode((itemIds)), EncodeArray.encode((amounts))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - uint256[] memory itemIds, - uint256[] memory amounts - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); - bytes memory _dynamicData = encodeDynamic(itemIds, amounts); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(Classes class) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "StarterItems", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000537461727465724974656d7300000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0000000200000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint8) + Schema constant _keySchema = Schema.wrap(0x0001010000000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256[], uint256[]) + Schema constant _valueSchema = Schema.wrap(0x0000000281810000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "class"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "itemIds"; + fieldNames[1] = "amounts"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get itemIds. + */ + function getItemIds(Classes class) internal view returns (uint256[] memory itemIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get itemIds. + */ + function _getItemIds(Classes class) internal view returns (uint256[] memory itemIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Set itemIds. + */ + function setItemIds(Classes class, uint256[] memory itemIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((itemIds))); + } + + /** + * @notice Set itemIds. + */ + function _setItemIds(Classes class, uint256[] memory itemIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((itemIds))); + } + + /** + * @notice Get the length of itemIds. + */ + function lengthItemIds(Classes class) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of itemIds. + */ + function _lengthItemIds(Classes class) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of itemIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemItemIds(Classes class, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _blob = + StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of itemIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemItemIds(Classes class, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Push an element to itemIds. + */ + function pushItemIds(Classes class, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to itemIds. + */ + function _pushItemIds(Classes class, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from itemIds. + */ + function popItemIds(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from itemIds. + */ + function _popItemIds(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Update an element of itemIds at `_index`. + */ + function updateItemIds(Classes class, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData( + _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded + ); + } + } + + /** + * @notice Update an element of itemIds at `_index`. + */ + function _updateItemIds(Classes class, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get amounts. + */ + function getAmounts(Classes class) internal view returns (uint256[] memory amounts) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get amounts. + */ + function _getAmounts(Classes class) internal view returns (uint256[] memory amounts) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Set amounts. + */ + function setAmounts(Classes class, uint256[] memory amounts) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((amounts))); + } + + /** + * @notice Set amounts. + */ + function _setAmounts(Classes class, uint256[] memory amounts) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((amounts))); + } + + /** + * @notice Get the length of amounts. + */ + function lengthAmounts(Classes class) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of amounts. + */ + function _lengthAmounts(Classes class) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of amounts. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemAmounts(Classes class, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _blob = + StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of amounts. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemAmounts(Classes class, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Push an element to amounts. + */ + function pushAmounts(Classes class, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to amounts. + */ + function _pushAmounts(Classes class, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from amounts. + */ + function popAmounts(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Pop an element from amounts. + */ + function _popAmounts(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Update an element of amounts at `_index`. + */ + function updateAmounts(Classes class, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData( + _tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded + ); + } + } + + /** + * @notice Update an element of amounts at `_index`. + */ + function _updateAmounts(Classes class, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(Classes class) internal view returns (StarterItemsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(Classes class) internal view returns (StarterItemsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(Classes class, uint256[] memory itemIds, uint256[] memory amounts) internal { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); + bytes memory _dynamicData = encodeDynamic(itemIds, amounts); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(Classes class, uint256[] memory itemIds, uint256[] memory amounts) internal { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); + bytes memory _dynamicData = encodeDynamic(itemIds, amounts); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(Classes class, StarterItemsData memory _table) internal { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(_table.itemIds, _table.amounts); + bytes memory _dynamicData = encodeDynamic(_table.itemIds, _table.amounts); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(Classes class, StarterItemsData memory _table) internal { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(_table.itemIds, _table.amounts); + bytes memory _dynamicData = encodeDynamic(_table.itemIds, _table.amounts); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) + internal + pure + returns (uint256[] memory itemIds, uint256[] memory amounts) + { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + itemIds = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); + + _start = _end; + unchecked { + _end += _encodedLengths.atIndex(1); + } + amounts = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode(bytes memory, EncodedLengths _encodedLengths, bytes memory _dynamicData) + internal + pure + returns (StarterItemsData memory _table) + { + (_table.itemIds, _table.amounts) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(uint256[] memory itemIds, uint256[] memory amounts) + internal + pure + returns (EncodedLengths _encodedLengths) + { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(itemIds.length * 32, amounts.length * 32); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(uint256[] memory itemIds, uint256[] memory amounts) internal pure returns (bytes memory) { + return abi.encodePacked(EncodeArray.encode((itemIds)), EncodeArray.encode((amounts))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint256[] memory itemIds, uint256[] memory amounts) + internal + pure + returns (bytes memory, EncodedLengths, bytes memory) + { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); + bytes memory _dynamicData = encodeDynamic(itemIds, amounts); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(Classes class) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Stats.sol b/packages/contracts/src/codegen/tables/Stats.sol index 56842ab5e..73e73c2f1 100644 --- a/packages/contracts/src/codegen/tables/Stats.sol +++ b/packages/contracts/src/codegen/tables/Stats.sol @@ -4,701 +4,669 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import { Classes } from "./../common.sol"; +import {Classes} from "./../common.sol"; struct StatsData { - uint256 strength; - uint256 agility; - Classes class; - uint256 intelligence; - uint256 baseHitPoints; - int256 currentHp; - uint256 experience; - uint256 level; + uint256 strength; + uint256 agility; + Classes class; + uint256 intelligence; + uint256 baseHitPoints; + int256 currentHp; + uint256 experience; + uint256 level; } library Stats { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Stats", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000053746174730000000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x00e1080020200120202020200000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256, uint256, uint8, uint256, uint256, int256, uint256, uint256) - Schema constant _valueSchema = Schema.wrap(0x00e108001f1f001f1f3f1f1f0000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "entityId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](8); - fieldNames[0] = "strength"; - fieldNames[1] = "agility"; - fieldNames[2] = "class"; - fieldNames[3] = "intelligence"; - fieldNames[4] = "baseHitPoints"; - fieldNames[5] = "currentHp"; - fieldNames[6] = "experience"; - fieldNames[7] = "level"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get strength. - */ - function getStrength(bytes32 entityId) internal view returns (uint256 strength) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get strength. - */ - function _getStrength(bytes32 entityId) internal view returns (uint256 strength) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set strength. - */ - function setStrength(bytes32 entityId, uint256 strength) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strength)), _fieldLayout); - } - - /** - * @notice Set strength. - */ - function _setStrength(bytes32 entityId, uint256 strength) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strength)), _fieldLayout); - } - - /** - * @notice Get agility. - */ - function getAgility(bytes32 entityId) internal view returns (uint256 agility) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get agility. - */ - function _getAgility(bytes32 entityId) internal view returns (uint256 agility) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set agility. - */ - function setAgility(bytes32 entityId, uint256 agility) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agility)), _fieldLayout); - } - - /** - * @notice Set agility. - */ - function _setAgility(bytes32 entityId, uint256 agility) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agility)), _fieldLayout); - } - - /** - * @notice Get class. - */ - function getClass(bytes32 entityId) internal view returns (Classes class) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return Classes(uint8(bytes1(_blob))); - } - - /** - * @notice Get class. - */ - function _getClass(bytes32 entityId) internal view returns (Classes class) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return Classes(uint8(bytes1(_blob))); - } - - /** - * @notice Set class. - */ - function setClass(bytes32 entityId, Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked(uint8(class)), _fieldLayout); - } - - /** - * @notice Set class. - */ - function _setClass(bytes32 entityId, Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked(uint8(class)), _fieldLayout); - } - - /** - * @notice Get intelligence. - */ - function getIntelligence(bytes32 entityId) internal view returns (uint256 intelligence) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get intelligence. - */ - function _getIntelligence(bytes32 entityId) internal view returns (uint256 intelligence) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set intelligence. - */ - function setIntelligence(bytes32 entityId, uint256 intelligence) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((intelligence)), _fieldLayout); - } - - /** - * @notice Set intelligence. - */ - function _setIntelligence(bytes32 entityId, uint256 intelligence) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((intelligence)), _fieldLayout); - } - - /** - * @notice Get baseHitPoints. - */ - function getBaseHitPoints(bytes32 entityId) internal view returns (uint256 baseHitPoints) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get baseHitPoints. - */ - function _getBaseHitPoints(bytes32 entityId) internal view returns (uint256 baseHitPoints) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set baseHitPoints. - */ - function setBaseHitPoints(bytes32 entityId, uint256 baseHitPoints) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((baseHitPoints)), _fieldLayout); - } - - /** - * @notice Set baseHitPoints. - */ - function _setBaseHitPoints(bytes32 entityId, uint256 baseHitPoints) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((baseHitPoints)), _fieldLayout); - } - - /** - * @notice Get currentHp. - */ - function getCurrentHp(bytes32 entityId) internal view returns (int256 currentHp) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get currentHp. - */ - function _getCurrentHp(bytes32 entityId) internal view returns (int256 currentHp) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set currentHp. - */ - function setCurrentHp(bytes32 entityId, int256 currentHp) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((currentHp)), _fieldLayout); - } - - /** - * @notice Set currentHp. - */ - function _setCurrentHp(bytes32 entityId, int256 currentHp) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((currentHp)), _fieldLayout); - } - - /** - * @notice Get experience. - */ - function getExperience(bytes32 entityId) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get experience. - */ - function _getExperience(bytes32 entityId) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set experience. - */ - function setExperience(bytes32 entityId, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Set experience. - */ - function _setExperience(bytes32 entityId, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Get level. - */ - function getLevel(bytes32 entityId) internal view returns (uint256 level) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 7, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get level. - */ - function _getLevel(bytes32 entityId) internal view returns (uint256 level) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 7, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set level. - */ - function setLevel(bytes32 entityId, uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 7, abi.encodePacked((level)), _fieldLayout); - } - - /** - * @notice Set level. - */ - function _setLevel(bytes32 entityId, uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 7, abi.encodePacked((level)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get(bytes32 entityId) internal view returns (StatsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 entityId) internal view returns (StatsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set( - bytes32 entityId, - uint256 strength, - uint256 agility, - Classes class, - uint256 intelligence, - uint256 baseHitPoints, - int256 currentHp, - uint256 experience, - uint256 level - ) internal { - bytes memory _staticData = encodeStatic( - strength, - agility, - class, - intelligence, - baseHitPoints, - currentHp, - experience, - level - ); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set( - bytes32 entityId, - uint256 strength, - uint256 agility, - Classes class, - uint256 intelligence, - uint256 baseHitPoints, - int256 currentHp, - uint256 experience, - uint256 level - ) internal { - bytes memory _staticData = encodeStatic( - strength, - agility, - class, - intelligence, - baseHitPoints, - currentHp, - experience, - level - ); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 entityId, StatsData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.strength, - _table.agility, - _table.class, - _table.intelligence, - _table.baseHitPoints, - _table.currentHp, - _table.experience, - _table.level - ); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 entityId, StatsData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.strength, - _table.agility, - _table.class, - _table.intelligence, - _table.baseHitPoints, - _table.currentHp, - _table.experience, - _table.level - ); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic( - bytes memory _blob - ) - internal - pure - returns ( - uint256 strength, - uint256 agility, - Classes class, - uint256 intelligence, - uint256 baseHitPoints, - int256 currentHp, - uint256 experience, - uint256 level - ) - { - strength = (uint256(Bytes.getBytes32(_blob, 0))); - - agility = (uint256(Bytes.getBytes32(_blob, 32))); - - class = Classes(uint8(Bytes.getBytes1(_blob, 64))); - - intelligence = (uint256(Bytes.getBytes32(_blob, 65))); - - baseHitPoints = (uint256(Bytes.getBytes32(_blob, 97))); - - currentHp = (int256(uint256(Bytes.getBytes32(_blob, 129)))); - - experience = (uint256(Bytes.getBytes32(_blob, 161))); - - level = (uint256(Bytes.getBytes32(_blob, 193))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode( - bytes memory _staticData, - EncodedLengths, - bytes memory - ) internal pure returns (StatsData memory _table) { - ( - _table.strength, - _table.agility, - _table.class, - _table.intelligence, - _table.baseHitPoints, - _table.currentHp, - _table.experience, - _table.level - ) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 entityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 entityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic( - uint256 strength, - uint256 agility, - Classes class, - uint256 intelligence, - uint256 baseHitPoints, - int256 currentHp, - uint256 experience, - uint256 level - ) internal pure returns (bytes memory) { - return abi.encodePacked(strength, agility, class, intelligence, baseHitPoints, currentHp, experience, level); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - uint256 strength, - uint256 agility, - Classes class, - uint256 intelligence, - uint256 baseHitPoints, - int256 currentHp, - uint256 experience, - uint256 level - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic( - strength, - agility, - class, - intelligence, - baseHitPoints, - currentHp, - experience, - level - ); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 entityId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Stats", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000053746174730000000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x00e1080020200120202020200000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256, uint256, uint8, uint256, uint256, int256, uint256, uint256) + Schema constant _valueSchema = Schema.wrap(0x00e108001f1f001f1f3f1f1f0000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "entityId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](8); + fieldNames[0] = "strength"; + fieldNames[1] = "agility"; + fieldNames[2] = "class"; + fieldNames[3] = "intelligence"; + fieldNames[4] = "baseHitPoints"; + fieldNames[5] = "currentHp"; + fieldNames[6] = "experience"; + fieldNames[7] = "level"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get strength. + */ + function getStrength(bytes32 entityId) internal view returns (uint256 strength) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get strength. + */ + function _getStrength(bytes32 entityId) internal view returns (uint256 strength) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set strength. + */ + function setStrength(bytes32 entityId, uint256 strength) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strength)), _fieldLayout); + } + + /** + * @notice Set strength. + */ + function _setStrength(bytes32 entityId, uint256 strength) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strength)), _fieldLayout); + } + + /** + * @notice Get agility. + */ + function getAgility(bytes32 entityId) internal view returns (uint256 agility) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get agility. + */ + function _getAgility(bytes32 entityId) internal view returns (uint256 agility) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set agility. + */ + function setAgility(bytes32 entityId, uint256 agility) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agility)), _fieldLayout); + } + + /** + * @notice Set agility. + */ + function _setAgility(bytes32 entityId, uint256 agility) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agility)), _fieldLayout); + } + + /** + * @notice Get class. + */ + function getClass(bytes32 entityId) internal view returns (Classes class) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return Classes(uint8(bytes1(_blob))); + } + + /** + * @notice Get class. + */ + function _getClass(bytes32 entityId) internal view returns (Classes class) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return Classes(uint8(bytes1(_blob))); + } + + /** + * @notice Set class. + */ + function setClass(bytes32 entityId, Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked(uint8(class)), _fieldLayout); + } + + /** + * @notice Set class. + */ + function _setClass(bytes32 entityId, Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked(uint8(class)), _fieldLayout); + } + + /** + * @notice Get intelligence. + */ + function getIntelligence(bytes32 entityId) internal view returns (uint256 intelligence) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get intelligence. + */ + function _getIntelligence(bytes32 entityId) internal view returns (uint256 intelligence) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set intelligence. + */ + function setIntelligence(bytes32 entityId, uint256 intelligence) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((intelligence)), _fieldLayout); + } + + /** + * @notice Set intelligence. + */ + function _setIntelligence(bytes32 entityId, uint256 intelligence) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((intelligence)), _fieldLayout); + } + + /** + * @notice Get baseHitPoints. + */ + function getBaseHitPoints(bytes32 entityId) internal view returns (uint256 baseHitPoints) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get baseHitPoints. + */ + function _getBaseHitPoints(bytes32 entityId) internal view returns (uint256 baseHitPoints) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set baseHitPoints. + */ + function setBaseHitPoints(bytes32 entityId, uint256 baseHitPoints) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((baseHitPoints)), _fieldLayout); + } + + /** + * @notice Set baseHitPoints. + */ + function _setBaseHitPoints(bytes32 entityId, uint256 baseHitPoints) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((baseHitPoints)), _fieldLayout); + } + + /** + * @notice Get currentHp. + */ + function getCurrentHp(bytes32 entityId) internal view returns (int256 currentHp) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get currentHp. + */ + function _getCurrentHp(bytes32 entityId) internal view returns (int256 currentHp) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set currentHp. + */ + function setCurrentHp(bytes32 entityId, int256 currentHp) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((currentHp)), _fieldLayout); + } + + /** + * @notice Set currentHp. + */ + function _setCurrentHp(bytes32 entityId, int256 currentHp) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((currentHp)), _fieldLayout); + } + + /** + * @notice Get experience. + */ + function getExperience(bytes32 entityId) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get experience. + */ + function _getExperience(bytes32 entityId) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set experience. + */ + function setExperience(bytes32 entityId, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Set experience. + */ + function _setExperience(bytes32 entityId, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Get level. + */ + function getLevel(bytes32 entityId) internal view returns (uint256 level) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 7, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get level. + */ + function _getLevel(bytes32 entityId) internal view returns (uint256 level) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 7, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set level. + */ + function setLevel(bytes32 entityId, uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 7, abi.encodePacked((level)), _fieldLayout); + } + + /** + * @notice Set level. + */ + function _setLevel(bytes32 entityId, uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 7, abi.encodePacked((level)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get(bytes32 entityId) internal view returns (StatsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 entityId) internal view returns (StatsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set( + bytes32 entityId, + uint256 strength, + uint256 agility, + Classes class, + uint256 intelligence, + uint256 baseHitPoints, + int256 currentHp, + uint256 experience, + uint256 level + ) internal { + bytes memory _staticData = + encodeStatic(strength, agility, class, intelligence, baseHitPoints, currentHp, experience, level); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set( + bytes32 entityId, + uint256 strength, + uint256 agility, + Classes class, + uint256 intelligence, + uint256 baseHitPoints, + int256 currentHp, + uint256 experience, + uint256 level + ) internal { + bytes memory _staticData = + encodeStatic(strength, agility, class, intelligence, baseHitPoints, currentHp, experience, level); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 entityId, StatsData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.strength, + _table.agility, + _table.class, + _table.intelligence, + _table.baseHitPoints, + _table.currentHp, + _table.experience, + _table.level + ); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 entityId, StatsData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.strength, + _table.agility, + _table.class, + _table.intelligence, + _table.baseHitPoints, + _table.currentHp, + _table.experience, + _table.level + ); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) + internal + pure + returns ( + uint256 strength, + uint256 agility, + Classes class, + uint256 intelligence, + uint256 baseHitPoints, + int256 currentHp, + uint256 experience, + uint256 level + ) + { + strength = (uint256(Bytes.getBytes32(_blob, 0))); + + agility = (uint256(Bytes.getBytes32(_blob, 32))); + + class = Classes(uint8(Bytes.getBytes1(_blob, 64))); + + intelligence = (uint256(Bytes.getBytes32(_blob, 65))); + + baseHitPoints = (uint256(Bytes.getBytes32(_blob, 97))); + + currentHp = (int256(uint256(Bytes.getBytes32(_blob, 129)))); + + experience = (uint256(Bytes.getBytes32(_blob, 161))); + + level = (uint256(Bytes.getBytes32(_blob, 193))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode(bytes memory _staticData, EncodedLengths, bytes memory) + internal + pure + returns (StatsData memory _table) + { + ( + _table.strength, + _table.agility, + _table.class, + _table.intelligence, + _table.baseHitPoints, + _table.currentHp, + _table.experience, + _table.level + ) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 entityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 entityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic( + uint256 strength, + uint256 agility, + Classes class, + uint256 intelligence, + uint256 baseHitPoints, + int256 currentHp, + uint256 experience, + uint256 level + ) internal pure returns (bytes memory) { + return abi.encodePacked(strength, agility, class, intelligence, baseHitPoints, currentHp, experience, level); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + uint256 strength, + uint256 agility, + Classes class, + uint256 intelligence, + uint256 baseHitPoints, + int256 currentHp, + uint256 experience, + uint256 level + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = + encodeStatic(strength, agility, class, intelligence, baseHitPoints, currentHp, experience, level); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 entityId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol b/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol index e9c793b22..5fa398025 100644 --- a/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol +++ b/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol @@ -4,579 +4,574 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import { IStore } from "@latticexyz/store/src/IStore.sol"; -import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; -import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; -import { Bytes } from "@latticexyz/store/src/Bytes.sol"; -import { Memory } from "@latticexyz/store/src/Memory.sol"; -import { SliceLib } from "@latticexyz/store/src/Slice.sol"; -import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; -import { Schema } from "@latticexyz/store/src/Schema.sol"; -import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; -import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; +import {IStore} from "@latticexyz/store/src/IStore.sol"; +import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; +import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; +import {Bytes} from "@latticexyz/store/src/Bytes.sol"; +import {Memory} from "@latticexyz/store/src/Memory.sol"; +import {SliceLib} from "@latticexyz/store/src/Slice.sol"; +import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; +import {Schema} from "@latticexyz/store/src/Schema.sol"; +import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; +import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; struct UltimateDominionConfigData { - bool locked; - address goldToken; - address characterToken; - address entropy; - address pythProvider; - address items; - address multicall; + bool locked; + address goldToken; + address characterToken; + address entropy; + address pythProvider; + address items; + address multicall; } library UltimateDominionConfig { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "UltimateDominion", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000556c74696d617465446f6d696e696f6e); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0079070001141414141414000000000000000000000000000000000000000000); - - // Hex-encoded key schema of () - Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bool, address, address, address, address, address, address) - Schema constant _valueSchema = Schema.wrap(0x0079070060616161616161000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](0); - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](7); - fieldNames[0] = "locked"; - fieldNames[1] = "goldToken"; - fieldNames[2] = "characterToken"; - fieldNames[3] = "entropy"; - fieldNames[4] = "pythProvider"; - fieldNames[5] = "items"; - fieldNames[6] = "multicall"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get locked. - */ - function getLocked() internal view returns (bool locked) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get locked. - */ - function _getLocked() internal view returns (bool locked) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Set locked. - */ - function setLocked(bool locked) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((locked)), _fieldLayout); - } - - /** - * @notice Set locked. - */ - function _setLocked(bool locked) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((locked)), _fieldLayout); - } - - /** - * @notice Get goldToken. - */ - function getGoldToken() internal view returns (address goldToken) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get goldToken. - */ - function _getGoldToken() internal view returns (address goldToken) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set goldToken. - */ - function setGoldToken(address goldToken) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((goldToken)), _fieldLayout); - } - - /** - * @notice Set goldToken. - */ - function _setGoldToken(address goldToken) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((goldToken)), _fieldLayout); - } - - /** - * @notice Get characterToken. - */ - function getCharacterToken() internal view returns (address characterToken) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get characterToken. - */ - function _getCharacterToken() internal view returns (address characterToken) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set characterToken. - */ - function setCharacterToken(address characterToken) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((characterToken)), _fieldLayout); - } - - /** - * @notice Set characterToken. - */ - function _setCharacterToken(address characterToken) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((characterToken)), _fieldLayout); - } - - /** - * @notice Get entropy. - */ - function getEntropy() internal view returns (address entropy) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get entropy. - */ - function _getEntropy() internal view returns (address entropy) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set entropy. - */ - function setEntropy(address entropy) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((entropy)), _fieldLayout); - } - - /** - * @notice Set entropy. - */ - function _setEntropy(address entropy) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((entropy)), _fieldLayout); - } - - /** - * @notice Get pythProvider. - */ - function getPythProvider() internal view returns (address pythProvider) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get pythProvider. - */ - function _getPythProvider() internal view returns (address pythProvider) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set pythProvider. - */ - function setPythProvider(address pythProvider) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((pythProvider)), _fieldLayout); - } - - /** - * @notice Set pythProvider. - */ - function _setPythProvider(address pythProvider) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((pythProvider)), _fieldLayout); - } - - /** - * @notice Get items. - */ - function getItems() internal view returns (address items) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get items. - */ - function _getItems() internal view returns (address items) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set items. - */ - function setItems(address items) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((items)), _fieldLayout); - } - - /** - * @notice Set items. - */ - function _setItems(address items) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((items)), _fieldLayout); - } - - /** - * @notice Get multicall. - */ - function getMulticall() internal view returns (address multicall) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get multicall. - */ - function _getMulticall() internal view returns (address multicall) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set multicall. - */ - function setMulticall(address multicall) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((multicall)), _fieldLayout); - } - - /** - * @notice Set multicall. - */ - function _setMulticall(address multicall) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((multicall)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get() internal view returns (UltimateDominionConfigData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](0); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get() internal view returns (UltimateDominionConfigData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](0); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( - _tableId, - _keyTuple, - _fieldLayout - ); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set( - bool locked, - address goldToken, - address characterToken, - address entropy, - address pythProvider, - address items, - address multicall - ) internal { - bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set( - bool locked, - address goldToken, - address characterToken, - address entropy, - address pythProvider, - address items, - address multicall - ) internal { - bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(UltimateDominionConfigData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.locked, - _table.goldToken, - _table.characterToken, - _table.entropy, - _table.pythProvider, - _table.items, - _table.multicall - ); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(UltimateDominionConfigData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.locked, - _table.goldToken, - _table.characterToken, - _table.entropy, - _table.pythProvider, - _table.items, - _table.multicall - ); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic( - bytes memory _blob - ) - internal - pure - returns ( - bool locked, - address goldToken, - address characterToken, - address entropy, - address pythProvider, - address items, - address multicall - ) - { - locked = (_toBool(uint8(Bytes.getBytes1(_blob, 0)))); - - goldToken = (address(Bytes.getBytes20(_blob, 1))); - - characterToken = (address(Bytes.getBytes20(_blob, 21))); - - entropy = (address(Bytes.getBytes20(_blob, 41))); - - pythProvider = (address(Bytes.getBytes20(_blob, 61))); - - items = (address(Bytes.getBytes20(_blob, 81))); - - multicall = (address(Bytes.getBytes20(_blob, 101))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode( - bytes memory _staticData, - EncodedLengths, - bytes memory - ) internal pure returns (UltimateDominionConfigData memory _table) { - ( - _table.locked, - _table.goldToken, - _table.characterToken, - _table.entropy, - _table.pythProvider, - _table.items, - _table.multicall - ) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord() internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord() internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic( - bool locked, - address goldToken, - address characterToken, - address entropy, - address pythProvider, - address items, - address multicall - ) internal pure returns (bytes memory) { - return abi.encodePacked(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - bool locked, - address goldToken, - address characterToken, - address entropy, - address pythProvider, - address items, - address multicall - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple() internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](0); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "UltimateDominion", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000556c74696d617465446f6d696e696f6e); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0079070001141414141414000000000000000000000000000000000000000000); + + // Hex-encoded key schema of () + Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bool, address, address, address, address, address, address) + Schema constant _valueSchema = Schema.wrap(0x0079070060616161616161000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](0); + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](7); + fieldNames[0] = "locked"; + fieldNames[1] = "goldToken"; + fieldNames[2] = "characterToken"; + fieldNames[3] = "entropy"; + fieldNames[4] = "pythProvider"; + fieldNames[5] = "items"; + fieldNames[6] = "multicall"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get locked. + */ + function getLocked() internal view returns (bool locked) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get locked. + */ + function _getLocked() internal view returns (bool locked) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Set locked. + */ + function setLocked(bool locked) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((locked)), _fieldLayout); + } + + /** + * @notice Set locked. + */ + function _setLocked(bool locked) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((locked)), _fieldLayout); + } + + /** + * @notice Get goldToken. + */ + function getGoldToken() internal view returns (address goldToken) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get goldToken. + */ + function _getGoldToken() internal view returns (address goldToken) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set goldToken. + */ + function setGoldToken(address goldToken) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((goldToken)), _fieldLayout); + } + + /** + * @notice Set goldToken. + */ + function _setGoldToken(address goldToken) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((goldToken)), _fieldLayout); + } + + /** + * @notice Get characterToken. + */ + function getCharacterToken() internal view returns (address characterToken) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get characterToken. + */ + function _getCharacterToken() internal view returns (address characterToken) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set characterToken. + */ + function setCharacterToken(address characterToken) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((characterToken)), _fieldLayout); + } + + /** + * @notice Set characterToken. + */ + function _setCharacterToken(address characterToken) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((characterToken)), _fieldLayout); + } + + /** + * @notice Get entropy. + */ + function getEntropy() internal view returns (address entropy) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get entropy. + */ + function _getEntropy() internal view returns (address entropy) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set entropy. + */ + function setEntropy(address entropy) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((entropy)), _fieldLayout); + } + + /** + * @notice Set entropy. + */ + function _setEntropy(address entropy) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((entropy)), _fieldLayout); + } + + /** + * @notice Get pythProvider. + */ + function getPythProvider() internal view returns (address pythProvider) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get pythProvider. + */ + function _getPythProvider() internal view returns (address pythProvider) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set pythProvider. + */ + function setPythProvider(address pythProvider) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((pythProvider)), _fieldLayout); + } + + /** + * @notice Set pythProvider. + */ + function _setPythProvider(address pythProvider) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((pythProvider)), _fieldLayout); + } + + /** + * @notice Get items. + */ + function getItems() internal view returns (address items) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get items. + */ + function _getItems() internal view returns (address items) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set items. + */ + function setItems(address items) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((items)), _fieldLayout); + } + + /** + * @notice Set items. + */ + function _setItems(address items) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((items)), _fieldLayout); + } + + /** + * @notice Get multicall. + */ + function getMulticall() internal view returns (address multicall) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get multicall. + */ + function _getMulticall() internal view returns (address multicall) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set multicall. + */ + function setMulticall(address multicall) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((multicall)), _fieldLayout); + } + + /** + * @notice Set multicall. + */ + function _setMulticall(address multicall) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((multicall)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get() internal view returns (UltimateDominionConfigData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](0); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get() internal view returns (UltimateDominionConfigData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](0); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = + StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set( + bool locked, + address goldToken, + address characterToken, + address entropy, + address pythProvider, + address items, + address multicall + ) internal { + bytes memory _staticData = + encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set( + bool locked, + address goldToken, + address characterToken, + address entropy, + address pythProvider, + address items, + address multicall + ) internal { + bytes memory _staticData = + encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(UltimateDominionConfigData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.locked, + _table.goldToken, + _table.characterToken, + _table.entropy, + _table.pythProvider, + _table.items, + _table.multicall + ); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(UltimateDominionConfigData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.locked, + _table.goldToken, + _table.characterToken, + _table.entropy, + _table.pythProvider, + _table.items, + _table.multicall + ); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) + internal + pure + returns ( + bool locked, + address goldToken, + address characterToken, + address entropy, + address pythProvider, + address items, + address multicall + ) + { + locked = (_toBool(uint8(Bytes.getBytes1(_blob, 0)))); + + goldToken = (address(Bytes.getBytes20(_blob, 1))); + + characterToken = (address(Bytes.getBytes20(_blob, 21))); + + entropy = (address(Bytes.getBytes20(_blob, 41))); + + pythProvider = (address(Bytes.getBytes20(_blob, 61))); + + items = (address(Bytes.getBytes20(_blob, 81))); + + multicall = (address(Bytes.getBytes20(_blob, 101))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode(bytes memory _staticData, EncodedLengths, bytes memory) + internal + pure + returns (UltimateDominionConfigData memory _table) + { + ( + _table.locked, + _table.goldToken, + _table.characterToken, + _table.entropy, + _table.pythProvider, + _table.items, + _table.multicall + ) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord() internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord() internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic( + bool locked, + address goldToken, + address characterToken, + address entropy, + address pythProvider, + address items, + address multicall + ) internal pure returns (bytes memory) { + return abi.encodePacked(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + bool locked, + address goldToken, + address characterToken, + address entropy, + address pythProvider, + address items, + address multicall + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = + encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple() internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](0); + + return _keyTuple; + } } /** @@ -586,7 +581,7 @@ library UltimateDominionConfig { * @return result The boolean value. */ function _toBool(uint8 value) pure returns (bool result) { - assembly { - result := value - } + assembly { + result := value + } } diff --git a/packages/contracts/src/codegen/world/IActionSystem.sol b/packages/contracts/src/codegen/world/IActionSystem.sol index a8b250e62..3f844d1f9 100644 --- a/packages/contracts/src/codegen/world/IActionSystem.sol +++ b/packages/contracts/src/codegen/world/IActionSystem.sol @@ -3,7 +3,7 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import { ActionType } from "@codegen/common.sol"; +import {ActionType} from "@codegen/common.sol"; /** * @title IActionSystem @@ -11,9 +11,9 @@ import { ActionType } from "@codegen/common.sol"; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IActionSystem { - function UD__createAction(ActionType actionType, bytes memory actionStats) external returns (bytes32 actionId); + function UD__createAction(ActionType actionType, bytes memory actionStats) external returns (bytes32 actionId); - function UD__assignActionToCharacter(bytes32 characterId, bytes32 actionId) external; + function UD__assignActionToCharacter(bytes32 characterId, bytes32 actionId) external; - function UD__equipAction(bytes32 characterId, bytes32 actionId) external; + function UD__equipAction(bytes32 characterId, bytes32 actionId) external; } diff --git a/packages/contracts/src/codegen/world/ICharacterSystem.sol b/packages/contracts/src/codegen/world/ICharacterSystem.sol index 7672f9758..56be1c6f9 100644 --- a/packages/contracts/src/codegen/world/ICharacterSystem.sol +++ b/packages/contracts/src/codegen/world/ICharacterSystem.sol @@ -3,8 +3,8 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import { Classes } from "@codegen/common.sol"; -import { StatsData } from "@codegen/index.sol"; +import {Classes} from "@codegen/common.sol"; +import {StatsData} from "@codegen/index.sol"; /** * @title ICharacterSystem @@ -12,37 +12,35 @@ import { StatsData } from "@codegen/index.sol"; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface ICharacterSystem { - function UD__getName(bytes32 characterId) external view returns (bytes32 _name); + function UD__getName(bytes32 characterId) external view returns (bytes32 _name); - function UD__getClass(bytes32 characterId) external view returns (Classes _class); + function UD__getClass(bytes32 characterId) external view returns (Classes _class); - function UD__getPlayerEntityId(uint256 characterTokenId) external view returns (bytes32 characterId); + function UD__getPlayerEntityId(uint256 characterTokenId) external view returns (bytes32 characterId); - function UD__getCharacterTokenId(bytes32 characterId) external pure returns (uint256); + function UD__getCharacterTokenId(bytes32 characterId) external pure returns (uint256); - function UD__getOwnerAddress(bytes32 characterId) external pure returns (address); + function UD__getOwnerAddress(bytes32 characterId) external pure returns (address); - function UD__isValidCharacterId(bytes32 characterId) external view returns (bool); + function UD__isValidCharacterId(bytes32 characterId) external view returns (bool); - function UD__isValidOwner(bytes32 characterId, address owner) external view returns (bool); + function UD__isValidOwner(bytes32 characterId, address owner) external view returns (bool); - function UD__mintCharacter( - address account, - bytes32 name, - string memory tokenUri - ) external returns (bytes32 characterId); + function UD__mintCharacter(address account, bytes32 name, string memory tokenUri) + external + returns (bytes32 characterId); - function UD__rollStats(bytes32 userRandomNumber, bytes32 characterId, Classes class) external payable; + function UD__rollStats(bytes32 userRandomNumber, bytes32 characterId, Classes class) external payable; - function UD__enterGame(bytes32 characterId) external; + function UD__enterGame(bytes32 characterId) external; - function UD__getCurrentAvailableLevel(uint256 experience) external view returns (uint256 currentLevel); + function UD__getCurrentAvailableLevel(uint256 experience) external view returns (uint256 currentLevel); - function UD__updateTokenUri(bytes32 characterId, string memory tokenUri) external; + function UD__updateTokenUri(bytes32 characterId, string memory tokenUri) external; - function UD__getOwner(bytes32 characterId) external view returns (address); + function UD__getOwner(bytes32 characterId) external view returns (address); - function UD__getExperience(bytes32 characterId) external view returns (uint256); + function UD__getExperience(bytes32 characterId) external view returns (uint256); - function UD__getStats(bytes32 characterId) external view returns (StatsData memory); + function UD__getStats(bytes32 characterId) external view returns (StatsData memory); } diff --git a/packages/contracts/src/codegen/world/ICombatSystem.sol b/packages/contracts/src/codegen/world/ICombatSystem.sol index 8df309ab1..7dc75219b 100644 --- a/packages/contracts/src/codegen/world/ICombatSystem.sol +++ b/packages/contracts/src/codegen/world/ICombatSystem.sol @@ -3,9 +3,9 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import { EncounterType } from "@codegen/common.sol"; -import { Action, PhysicalAttackStats } from "@interfaces/Structs.sol"; -import { CombatEncounterData } from "@codegen/index.sol"; +import {EncounterType} from "@codegen/common.sol"; +import {Action, PhysicalAttackStats} from "@interfaces/Structs.sol"; +import {CombatEncounterData} from "@codegen/index.sol"; /** * @title ICombatSystem @@ -13,41 +13,37 @@ import { CombatEncounterData } from "@codegen/index.sol"; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface ICombatSystem { - function UD__createMatch( - EncounterType encounterType, - bytes32[] memory attackers, - bytes32[] memory defenders - ) external returns (bytes32 encounterId); + function UD__createMatch(EncounterType encounterType, bytes32[] memory attackers, bytes32[] memory defenders) + external + returns (bytes32 encounterId); - function UD__isValidPvE( - bytes32[] memory attackers, - bytes32[] memory defenders, - uint16 x, - uint16 y - ) external view returns (bool _isValidPvE); + function UD__isValidPvE(bytes32[] memory attackers, bytes32[] memory defenders, uint16 x, uint16 y) + external + view + returns (bool _isValidPvE); - function UD__endTurn(bytes32 encounterId, bytes32 playerId, Action[] memory actions) external payable; + function UD__endTurn(bytes32 encounterId, bytes32 playerId, Action[] memory actions) external payable; - function UD__isParticipant(address account, bytes32 encounterId) external view returns (bool _isParticipant); + function UD__isParticipant(address account, bytes32 encounterId) external view returns (bool _isParticipant); - function UD__isParticipant( - address account, - bytes32[] memory participants - ) external view returns (bool _isParticipant); + function UD__isParticipant(address account, bytes32[] memory participants) + external + view + returns (bool _isParticipant); - function UD__executeCombat(uint256 randomNumber, bytes32 encounterId, Action[] memory actions) external; + function UD__executeCombat(uint256 randomNumber, bytes32 encounterId, Action[] memory actions) external; - function UD___calculatePhysicalAttack( - PhysicalAttackStats memory attackStats, - bytes32 attackerId, - bytes32 defenderId, - uint256 weaponId, - uint256 randomNumber - ) external returns (int256 damage, bool hit, bool crit); + function UD___calculatePhysicalAttack( + PhysicalAttackStats memory attackStats, + bytes32 attackerId, + bytes32 defenderId, + uint256 weaponId, + uint256 randomNumber + ) external returns (int256 damage, bool hit, bool crit); - function UD__getEncounter(bytes32 encounterId) external view returns (CombatEncounterData memory _encounterData); + function UD__getEncounter(bytes32 encounterId) external view returns (CombatEncounterData memory _encounterData); - function UD___calculateMagicAttack() external; + function UD___calculateMagicAttack() external; - function UD__calculateGoldDrop(uint256 mobLevel, uint256 randomNumber) external returns (uint256 dropAmount); + function UD__calculateGoldDrop(uint256 mobLevel, uint256 randomNumber) external returns (uint256 dropAmount); } diff --git a/packages/contracts/src/codegen/world/IEquipmentSystem.sol b/packages/contracts/src/codegen/world/IEquipmentSystem.sol index 3669ba117..bb5c57e47 100644 --- a/packages/contracts/src/codegen/world/IEquipmentSystem.sol +++ b/packages/contracts/src/codegen/world/IEquipmentSystem.sol @@ -3,7 +3,7 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import { AdjustedCombatStats, WeaponStats, ArmorStats } from "@interfaces/Structs.sol"; +import {AdjustedCombatStats, WeaponStats, ArmorStats} from "@interfaces/Structs.sol"; /** * @title IEquipmentSystem @@ -11,17 +11,20 @@ import { AdjustedCombatStats, WeaponStats, ArmorStats } from "@interfaces/Struct * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IEquipmentSystem { - function UD__equipItems(bytes32 characterId, uint256[] memory itemIds) external; + function UD__equipItems(bytes32 characterId, uint256[] memory itemIds) external; - function UD__isEquipped(bytes32 characterId, uint256 itemId) external view returns (bool _isEquipped); + function UD__isEquipped(bytes32 characterId, uint256 itemId) external view returns (bool _isEquipped); - function UD__checkRequirements(bytes32 characterId, uint256 itemId) external view returns (bool canUse); + function UD__checkRequirements(bytes32 characterId, uint256 itemId) external view returns (bool canUse); - function UD__unequipItem(bytes32 characterId, uint256 itemId) external returns (bool success); + function UD__unequipItem(bytes32 characterId, uint256 itemId) external returns (bool success); - function UD__applyEquipmentBonuses(bytes32 entityId) external view returns (AdjustedCombatStats memory modifiedStats); + function UD__applyEquipmentBonuses(bytes32 entityId) + external + view + returns (AdjustedCombatStats memory modifiedStats); - function UD__getWeaponStats(uint256 itemId) external view returns (WeaponStats memory _weaponStats); + function UD__getWeaponStats(uint256 itemId) external view returns (WeaponStats memory _weaponStats); - function UD__getArmorStats(uint256 itemId) external view returns (ArmorStats memory _ArmorStats); + function UD__getArmorStats(uint256 itemId) external view returns (ArmorStats memory _ArmorStats); } diff --git a/packages/contracts/src/codegen/world/IItemsSystem.sol b/packages/contracts/src/codegen/world/IItemsSystem.sol index 571a85b18..7d5fe5138 100644 --- a/packages/contracts/src/codegen/world/IItemsSystem.sol +++ b/packages/contracts/src/codegen/world/IItemsSystem.sol @@ -3,8 +3,8 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import { ItemType, Classes } from "@codegen/common.sol"; -import { StarterItemsData } from "@codegen/index.sol"; +import {ItemType, Classes} from "@codegen/common.sol"; +import {StarterItemsData} from "@codegen/index.sol"; /** * @title IItemsSystem @@ -12,33 +12,33 @@ import { StarterItemsData } from "@codegen/index.sol"; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IItemsSystem { - function UD__createItem( - ItemType itemType, - uint256 supply, - uint256 dropChance, - bytes memory stats, - string memory itemMetadataURI - ) external returns (uint256); + function UD__createItem( + ItemType itemType, + uint256 supply, + uint256 dropChance, + bytes memory stats, + string memory itemMetadataURI + ) external returns (uint256); - function UD__createItems( - ItemType[] memory itemTypes, - uint256[] memory supply, - uint256[] memory dropChances, - bytes[] memory stats, - string[] memory itemMetadataURIs - ) external; + function UD__createItems( + ItemType[] memory itemTypes, + uint256[] memory supply, + uint256[] memory dropChances, + bytes[] memory stats, + string[] memory itemMetadataURIs + ) external; - function UD__getTotalSupply(uint256 tokenId) external view returns (uint256 _supply); + function UD__getTotalSupply(uint256 tokenId) external view returns (uint256 _supply); - function UD__getStarterItems(Classes class) external view returns (StarterItemsData memory data); + function UD__getStarterItems(Classes class) external view returns (StarterItemsData memory data); - function UD__setTokenUri(uint256 tokenId, string memory tokenUri) external; + function UD__setTokenUri(uint256 tokenId, string memory tokenUri) external; - function UD__getItemType(uint256 itemId) external view returns (ItemType); + function UD__getItemType(uint256 itemId) external view returns (ItemType); - function UD__getCurrentItemsCounter() external view returns (uint256); + function UD__getCurrentItemsCounter() external view returns (uint256); - function UD__setStarterItems(Classes class, uint256[] memory itemIds, uint256[] memory amounts) external; + function UD__setStarterItems(Classes class, uint256[] memory itemIds, uint256[] memory amounts) external; - function UD__isItemOwner(uint256 itemId, address account) external view returns (bool); + function UD__isItemOwner(uint256 itemId, address account) external view returns (bool); } diff --git a/packages/contracts/src/codegen/world/IMapSystem.sol b/packages/contracts/src/codegen/world/IMapSystem.sol index 6d44cd167..aaac3781b 100644 --- a/packages/contracts/src/codegen/world/IMapSystem.sol +++ b/packages/contracts/src/codegen/world/IMapSystem.sol @@ -9,11 +9,14 @@ pragma solidity >=0.8.24; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IMapSystem { - function UD__move(bytes32 entityId, uint16 x, uint16 y) external; + function UD__move(bytes32 entityId, uint16 x, uint16 y) external; - function UD__spawn(bytes32 entityId) external; + function UD__spawn(bytes32 entityId) external; - function UD__getEntitiesAtPosition(uint16 x, uint16 y) external view returns (bytes32[] memory entitiesAtPosition); + function UD__getEntitiesAtPosition(uint16 x, uint16 y) + external + view + returns (bytes32[] memory entitiesAtPosition); - function UD__isAtPosition(bytes32 entityId, uint16 x, uint16 y) external view returns (bool _isAtPosition); + function UD__isAtPosition(bytes32 entityId, uint16 x, uint16 y) external view returns (bool _isAtPosition); } diff --git a/packages/contracts/src/codegen/world/IMobSystem.sol b/packages/contracts/src/codegen/world/IMobSystem.sol index 05c23d63f..a71ac5587 100644 --- a/packages/contracts/src/codegen/world/IMobSystem.sol +++ b/packages/contracts/src/codegen/world/IMobSystem.sol @@ -3,9 +3,9 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import { MobType } from "@codegen/common.sol"; -import { NPCStats, MonsterStats } from "@interfaces/Structs.sol"; -import { MobsData } from "@tables/Mobs.sol"; +import {MobType} from "@codegen/common.sol"; +import {NPCStats, MonsterStats} from "@interfaces/Structs.sol"; +import {MobsData} from "@tables/Mobs.sol"; /** * @title IMobSystem @@ -13,29 +13,32 @@ import { MobsData } from "@tables/Mobs.sol"; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IMobSystem { - function UD__createMob(MobType mobType, bytes memory stats, string memory mobMetadataUri) external returns (uint256); + function UD__createMob(MobType mobType, bytes memory stats, string memory mobMetadataUri) + external + returns (uint256); - function UD__createMobs(MobType[] memory mobTypes, bytes[] memory stats, string[] memory mobMetadataURIs) external; + function UD__createMobs(MobType[] memory mobTypes, bytes[] memory stats, string[] memory mobMetadataURIs) + external; - function UD__spawnMob(uint256 mobId, uint16 x, uint16 y) external returns (bytes32 entityId); + function UD__spawnMob(uint256 mobId, uint16 x, uint16 y) external returns (bytes32 entityId); - function UD__getMobId(bytes32 entityId) external pure returns (uint256); + function UD__getMobId(bytes32 entityId) external pure returns (uint256); - function UD__getMobPosition(bytes32 entityId) external pure returns (uint16 x, uint16 y); + function UD__getMobPosition(bytes32 entityId) external pure returns (uint16 x, uint16 y); - function UD__getSpawnCounter(bytes32 entityId) external pure returns (uint256); + function UD__getSpawnCounter(bytes32 entityId) external pure returns (uint256); - function UD__getNpcStats(uint256 mobId) external view returns (NPCStats memory); + function UD__getNpcStats(uint256 mobId) external view returns (NPCStats memory); - function UD__getNpcStats(bytes32 entityId) external view returns (NPCStats memory); + function UD__getNpcStats(bytes32 entityId) external view returns (NPCStats memory); - function UD__getMonsterStats(uint256 mobId) external view returns (MonsterStats memory); + function UD__getMonsterStats(uint256 mobId) external view returns (MonsterStats memory); - function UD__getMonsterStats(bytes32 entityId) external view returns (MonsterStats memory); + function UD__getMonsterStats(bytes32 entityId) external view returns (MonsterStats memory); - function UD__isValidMob(bytes32 entityId) external view returns (bool); + function UD__isValidMob(bytes32 entityId) external view returns (bool); - function UD__getMob(uint256 mobId) external view returns (MobsData memory); + function UD__getMob(uint256 mobId) external view returns (MobsData memory); - function UD__getMob(bytes32 entityId) external view returns (MobsData memory); + function UD__getMob(bytes32 entityId) external view returns (MobsData memory); } diff --git a/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol b/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol index 141db9fed..b922891a0 100644 --- a/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol +++ b/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol @@ -9,17 +9,17 @@ pragma solidity >=0.8.24; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IUltimateDominionConfigSystem { - function UD__getCharacterToken() external view returns (address _characterToken); + function UD__getCharacterToken() external view returns (address _characterToken); - function UD__getGoldToken() external view returns (address _goldToken); + function UD__getGoldToken() external view returns (address _goldToken); - function UD__getEntropy() external view returns (address _entropy); + function UD__getEntropy() external view returns (address _entropy); - function UD__getPythProvider() external view returns (address _provider); + function UD__getPythProvider() external view returns (address _provider); - function UD__getItemsContract() external view returns (address _erc1155); + function UD__getItemsContract() external view returns (address _erc1155); - function UD__getMulticallContract() external view returns (address _multicall); + function UD__getMulticallContract() external view returns (address _multicall); - function UD__getLootManagerSystem() external view returns (address _lootManager); + function UD__getLootManagerSystem() external view returns (address _lootManager); } diff --git a/packages/contracts/src/codegen/world/IWorld.sol b/packages/contracts/src/codegen/world/IWorld.sol index f54982249..671a5ada9 100644 --- a/packages/contracts/src/codegen/world/IWorld.sol +++ b/packages/contracts/src/codegen/world/IWorld.sol @@ -3,17 +3,17 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol"; +import {IBaseWorld} from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol"; -import { IActionSystem } from "./IActionSystem.sol"; -import { ICharacterSystem } from "./ICharacterSystem.sol"; -import { ICombatSystem } from "./ICombatSystem.sol"; -import { IEquipmentSystem } from "./IEquipmentSystem.sol"; -import { IItemsSystem } from "./IItemsSystem.sol"; -import { ILootManagerSystem } from "./ILootManagerSystem.sol"; -import { IMapSystem } from "./IMapSystem.sol"; -import { IMobSystem } from "./IMobSystem.sol"; -import { IUltimateDominionConfigSystem } from "./IUltimateDominionConfigSystem.sol"; +import {IActionSystem} from "./IActionSystem.sol"; +import {ICharacterSystem} from "./ICharacterSystem.sol"; +import {ICombatSystem} from "./ICombatSystem.sol"; +import {IEquipmentSystem} from "./IEquipmentSystem.sol"; +import {IItemsSystem} from "./IItemsSystem.sol"; +import {ILootManagerSystem} from "./ILootManagerSystem.sol"; +import {IMapSystem} from "./IMapSystem.sol"; +import {IMobSystem} from "./IMobSystem.sol"; +import {IUltimateDominionConfigSystem} from "./IUltimateDominionConfigSystem.sol"; /** * @title IWorld @@ -23,14 +23,14 @@ import { IUltimateDominionConfigSystem } from "./IUltimateDominionConfigSystem.s * @dev This is an autogenerated file; do not edit manually. */ interface IWorld is - IBaseWorld, - IActionSystem, - ICharacterSystem, - ICombatSystem, - IEquipmentSystem, - IItemsSystem, - ILootManagerSystem, - IMapSystem, - IMobSystem, - IUltimateDominionConfigSystem + IBaseWorld, + IActionSystem, + ICharacterSystem, + ICombatSystem, + IEquipmentSystem, + IItemsSystem, + ILootManagerSystem, + IMapSystem, + IMobSystem, + IUltimateDominionConfigSystem {} diff --git a/packages/contracts/src/systems/EquipmentSystem.sol b/packages/contracts/src/systems/EquipmentSystem.sol index 582415c1a..cd5943e30 100644 --- a/packages/contracts/src/systems/EquipmentSystem.sol +++ b/packages/contracts/src/systems/EquipmentSystem.sol @@ -76,8 +76,7 @@ contract EquipmentSystem is System { i++; } } - } - if (uint8(itemData.itemType) == 1) { + } else if (uint8(itemData.itemType) == 1) { uint256[] memory equippedArmor = CharacterEquipment.getEquippedArmor(characterId); for (uint256 i; i < equippedArmor.length;) { if (equippedArmor[i] == itemId) { @@ -88,6 +87,10 @@ contract EquipmentSystem is System { i++; } } + } else if (uint8(itemData.itemType) == 2) { + // spells + } else { + revert("EQUIPMENT: UNRECOGNIZED ITEM TYPE"); } } @@ -139,6 +142,7 @@ contract EquipmentSystem is System { } function _equipItem(bytes32 characterId, uint256 itemId, ItemType itemType) internal { + require(!isEquipped(characterId, itemId), "EQUIPMENT: ALREADY EQUIPPED"); if (uint8(itemType) == 0) { require(CharacterEquipment.lengthEquippedWeapons(characterId) < 3, "ITEMS: Too many weapons equipped"); CharacterEquipment.pushEquippedWeapons(characterId, itemId); From 49030da7097bdf3257fe546368bf3ecba51db12d Mon Sep 17 00:00:00 2001 From: MrDeadCe11 Date: Tue, 16 Jul 2024 15:52:52 -0500 Subject: [PATCH 6/8] added missing files --- .../CharacterSystem.sol/CharacterSystem.json | 2 +- .../contracts/out/IWorld.sol/IWorld.abi.json | 24 + .../out/IWorld.sol/IWorld.abi.json.d.ts | 24 + packages/contracts/out/IWorld.sol/IWorld.json | 2 +- .../out/MapSystem.sol/MapSystem.json | 2 +- packages/contracts/src/codegen/common.sol | 60 +- packages/contracts/src/codegen/index.sol | 42 +- .../contracts/src/codegen/tables/Actions.sol | 924 ++++---- .../contracts/src/codegen/tables/Admin.sol | 386 +-- .../src/codegen/tables/CharacterEquipment.sol | 2101 +++++++++-------- .../src/codegen/tables/Characters.sol | 820 +++---- .../src/codegen/tables/CombatEncounter.sol | 1731 +++++++------- .../contracts/src/codegen/tables/Counters.sol | 404 ++-- .../src/codegen/tables/EntitiesAtPosition.sol | 950 ++++---- .../contracts/src/codegen/tables/Items.sol | 1017 ++++---- .../contracts/src/codegen/tables/Levels.sol | 380 +-- .../src/codegen/tables/MapConfig.sol | 510 ++-- .../src/codegen/tables/MatchEntity.sol | 613 ++--- .../contracts/src/codegen/tables/Mobs.sol | 1272 +++++----- .../src/codegen/tables/MobsByLevel.sol | 886 ++++--- .../contracts/src/codegen/tables/Name.sol | 880 +++---- .../src/codegen/tables/NameExists.sol | 386 +-- .../contracts/src/codegen/tables/Position.sol | 538 ++--- .../src/codegen/tables/RandomNumbers.sol | 924 ++++---- .../contracts/src/codegen/tables/Spawned.sol | 386 +-- .../src/codegen/tables/StarterItems.sol | 1145 +++++---- .../contracts/src/codegen/tables/Stats.sol | 1348 +++++------ .../codegen/tables/UltimateDominionConfig.sol | 1137 ++++----- .../src/codegen/world/IActionSystem.sol | 8 +- .../src/codegen/world/ICharacterSystem.sol | 40 +- .../src/codegen/world/ICombatSystem.sol | 60 +- .../src/codegen/world/IEquipmentSystem.sol | 19 +- .../src/codegen/world/IItemsSystem.sol | 46 +- .../src/codegen/world/ILootManagerSystem.sol | 19 + .../src/codegen/world/IMapSystem.sol | 11 +- .../src/codegen/world/IMobSystem.sol | 35 +- .../world/IUltimateDominionConfigSystem.sol | 14 +- .../contracts/src/codegen/world/IWorld.sol | 40 +- .../contracts/src/systems/CombatSystem.sol | 4 + .../src/systems/LootManagerSystem.sol | 90 + 40 files changed, 9758 insertions(+), 9522 deletions(-) create mode 100644 packages/contracts/src/codegen/world/ILootManagerSystem.sol create mode 100644 packages/contracts/src/systems/LootManagerSystem.sol diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json index 101bc3284..724a49294 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061497d806100206000396000f3fe6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea2646970667358221220051bc834708e24c962533671ce7dfc8684d60a0ba120aa18f2c998d413db9df964736f6c63430008180033","sourceMap":"1812:6250:212:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea2646970667358221220051bc834708e24c962533671ce7dfc8684d60a0ba120aa18f2c998d413db9df964736f6c63430008180033","sourceMap":"1812:6250:212:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:144;;;;;;;;;;-1:-1:-1;2973:144:212;;;;;:::i;:::-;3106:2;3082:26;;2973:144;;;;-1:-1:-1;;;;;363:55:230;;;345:74;;333:2;318:18;2973:144:212;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:230;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:230;7936:124:212;;;;;;;;;;-1:-1:-1;7936:124:212;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;4111:837:212:-;;;;;;;;;;-1:-1:-1;4111:837:212;;;;;:::i;:::-;;:::i;:::-;;;4284:25:230;;;4272:2;4257:18;4111:837:212;4138:177:230;6106:492:212;;;;;;;;;;-1:-1:-1;6106:492:212;;;;;:::i;:::-;;:::i;1989:129::-;;;;;;;;;;-1:-1:-1;1989:129:212;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1853:130:212;;;;;;;;;;-1:-1:-1;1853:130:212;;;;;:::i;:::-;;:::i;3123:413::-;;;;;;;;;;-1:-1:-1;3123:413:212;;;;;:::i;:::-;;:::i;4954:545::-;;;;;;:::i;:::-;;:::i;:::-;;2460:266;;;;;;;;;;-1:-1:-1;2460:266:212;;;;;:::i;:::-;;:::i;3542:212::-;;;;;;;;;;-1:-1:-1;3542:212:212;;;;;:::i;:::-;;:::i;6604:219::-;;;;;;;;;;-1:-1:-1;6604:219:212;;;;;:::i;:::-;;:::i;5505:595::-;;;;;;;;;;-1:-1:-1;5505:595:212;;;;;:::i;:::-;;:::i;7669:125::-;;;;;;;;;;-1:-1:-1;7669:125:212;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7800:130:212:-;;;;;;;;;;-1:-1:-1;7800:130:212;;;;;:::i;:::-;;:::i;2732:143::-;;;;;;;;;;-1:-1:-1;2732:143:212;;;;;:::i;:::-;2830:37;;;2732:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7936:124:212:-;7996:16;;:::i;:::-;8031:22;8041:11;8031:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;4111:837:212:-;4221:19;4256:24;4283:28;:26;:28::i;:::-;4256:55;-1:-1:-1;4348:16:212;4329:35;;4321:83;;;;-1:-1:-1;;;4321:83:212;;6255:2:230;4321:83:212;;;6237:21:230;6294:2;6274:18;;;6267:30;6333:34;6313:18;;;6306:62;6404:5;6384:18;;;6377:33;6427:19;;4321:83:212;;;;;;;;;4421:8;:6;:8::i;:::-;-1:-1:-1;;;;;4414:21:212;;4449:37;4465:20;4449:15;:37::i;:::-;4488:65;;-1:-1:-1;;;;;6649:55:230;;4488:65:212;;;6631:74:230;6721:18;;;6714:34;;;6604:18;;4488:65:212;;;-1:-1:-1;;4488:65:212;;;;;;;;;;;;;;;;;;;;4414:149;;4488:65;4414:149;;;;;;;;;4488:65;4414:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4414:149:212;;;;;;;;;;;;:::i;:::-;;4587:35;4605:16;4587:17;:35::i;:::-;4573:49;;4632:41;4652:11;4665:7;4632:19;:41::i;:::-;4683:52;4705:11;4718:16;4683:21;:52::i;:::-;4754:25;4774:4;4754:19;:25::i;:::-;4753:26;4745:58;;;;-1:-1:-1;;;4745:58:212;;8662:2:230;4745:58:212;;;8644:21:230;8701:2;8681:18;;;8674:30;8740:21;8720:18;;;8713:49;8779:18;;4745:58:212;8460:343:230;4745:58:212;4813:31;4833:4;4839;4813:19;:31::i;:::-;4854:37;4873:11;4886:4;4854:18;:37::i;:::-;4901:40;4914:16;4932:8;4901:12;:40::i;:::-;4246:702;4111:837;;;;;:::o;6106:492::-;6181:20;6231:14;6242:2;6231:10;:14::i;:::-;6217:10;:28;6213:379;;-1:-1:-1;6276:2:212;6106:492;;;:::o;6213:379::-;6314:9;6309:273;6329:2;6325:1;:6;6309:273;;;6373:10;6356:13;6367:1;6356:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;6407:10:212;6387:17;6398:5;:1;6402;6398:5;:::i;:::-;6387:10;:17::i;:::-;:30;6356:61;6352:155;;;6456:5;:1;6460;6456:5;:::i;:::-;6441:20;;6483:5;;6352:155;6546:3;;;;:::i;:::-;;;;6309:273;;;;6106:492;;;:::o;1989:129::-;2049:14;2084:27;2099:11;2084:14;:27::i;1853:130::-;1912:13;1945:31;1964:11;1945:18;:31::i;3123:413::-;3193:4;3209:20;3232:28;3248:11;3106:2;3082:26;;2973:144;3232:28;3209:51;-1:-1:-1;2830:37:212;;;3270:15;3359:17;:15;:17::i;:::-;-1:-1:-1;;;;;3359:25:212;;3385:7;3359:34;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;3359:34:212;;;;;;;;;;;;;;;;;;;-1:-1:-1;3359:34:212;;;;;;;;-1:-1:-1;;3359:34:212;;;;;;;;;;;;:::i;:::-;;;3355:135;;;3436:17;:15;:17::i;:::-;-1:-1:-1;;;;;3436:25:212;;3462:7;3436:34;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;3436:34:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3426:44;;3394:87;3355:135;3517:12;-1:-1:-1;;;;;3506:23:212;:7;-1:-1:-1;;;;;3506:23:212;;3499:30;;;;;3123:413;;;:::o;4954:545::-;5069:33;5090:11;5069:20;:33::i;:::-;5068:34;5060:90;;;;-1:-1:-1;;;5060:90:212;;9785:2:230;5060:90:212;;;9767:21:230;9824:2;9804:18;;;9797:30;9863:34;9843:18;;;9836:62;9934:13;9914:18;;;9907:41;9965:19;;5060:90:212;9583:407:230;5060:90:212;5168:21;5177:11;5168:8;:21::i;:::-;5160:53;;;;-1:-1:-1;;;5160:53:212;;10197:2:230;5160:53:212;;;10179:21:230;10236:2;10216:18;;;10209:30;10275:21;10255:18;;;10248:49;10314:18;;5160:53:212;9995:343:230;5160:53:212;5223:26;5291:34;5306:11;5319:5;5291:14;:34::i;:::-;5382:110;5435:16;5453:11;5477;5466:23;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;5466:23:212;;;;-1:-1:-1;;5466:23:212;;;;;;;;;;5400:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5400:91:212;;;;;;;;;;;;;;;;;;;;5382:17;:110::i;:::-;;5050:449;4954:545;;;:::o;2460:266::-;2534:19;2565:20;2588:17;:15;:17::i;:::-;-1:-1:-1;;;;;2588:25:212;;2614:16;2588:43;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;2588:43:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2697:2;2663:36;-1:-1:-1;;2663:36:212;:55;;;;;;-1:-1:-1;;2460:266:212:o;3542:212::-;3621:4;3644:31;3663:11;3644:18;:31::i;:::-;:103;;;;;3742:5;-1:-1:-1;;;;;3679:68:212;:17;:15;:17::i;:::-;:59;;;;;2830:37;;;3679:59;;;4284:25:230;-1:-1:-1;;;;;3679:25:212;;;;;;;4257:18:230;;3679:59:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3679:68:212;;3644:103;3637:110;3542:212;-1:-1:-1;;;3542:212:212:o;6604:219::-;6698:21;6707:11;6698:8;:21::i;:::-;6690:60;;;;-1:-1:-1;;;6690:60:212;;10974:2:230;6690:60:212;;;10956:21:230;11013:2;10993:18;;;10986:30;11052:28;11032:18;;;11025:56;11098:18;;6690:60:212;10772:350:230;6690:60:212;6760:56;2830:37;;;6807:8;6760:12;:56::i;:::-;6604:219;;:::o;5505:595::-;5570:21;5579:11;5570:8;:21::i;:::-;5562:52;;;;-1:-1:-1;;;5562:52:212;;11329:2:230;5562:52:212;;;11311:21:230;11368:2;11348:18;;;11341:30;11407:20;11387:18;;;11380:48;11445:18;;5562:52:212;11127:342:230;5562:52:212;5633:33;5654:11;5633:20;:33::i;:::-;5632:34;5624:72;;;;-1:-1:-1;;;5624:72:212;;11676:2:230;5624:72:212;;;11658:21:230;11715:2;11695:18;;;11688:30;11754:27;11734:18;;;11727:55;11799:18;;5624:72:212;11474:349:230;5624:72:212;5706:26;5735:22;5745:11;5735:9;:22::i;:::-;5785:1;5767:15;;;:19;5825:23;;;;5796:19;;;:53;5706:51;-1:-1:-1;5859:33:212;5869:11;5706:51;5859:9;:33::i;:::-;5909:8;:6;:8::i;:::-;5902:51;;;;;;;;12028:25:230;;;5945:7:212;12069:18:230;;;12062:34;-1:-1:-1;;;;;5902:29:212;;;;;;;12001:18:230;;5902:51:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:8;:6;:8::i;:::-;-1:-1:-1;;;;;5993:38:212;;6032:11;5993:51;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;5993:51:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6054:39;6075:11;6088:4;6054:20;:39::i;7669:125::-;7729:7;7755:32;7775:11;7755:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7800:130:212:-;7865:7;7891:32;7911:11;7891:19;:32::i;13270:402:195:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:195;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:195:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;7003:347:212:-;7059:7;7078:25;7106:42;:40;:42::i;:::-;7078:70;;7158:24;7185:50;7213:17;7233:1;7185:19;:50::i;:::-;:54;;7238:1;7185:54;:::i;:::-;7158:81;;7249:61;7269:17;7288:1;7292:16;7249:19;:61::i;1157:186:221:-;1215:10;1240:100;1275:15;1303:9;1320:18;1240:25;:100::i;4730:249:179:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:179;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;12445:2:230;12441:15;;;;-1:-1:-1;;12437:88:230;12425:101;;12551:2;12542:12;;12296:264;4934:25:179;;;;-1:-1:-1;;4934:25:179;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:179;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;2594:287:190;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:190;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:190:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:190;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12903:14:230;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4085:25:190;;;;-1:-1:-1;;4085:25:190;;;;;;;;;1198:66;4034:26;:91::i;5941:246:179:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:179;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;6829:168:212;6911:79;6932:38;6949:20;6932:16;:38::i;:::-;6972:7;6981:8;6911:20;:79::i;3297:296:184:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:184;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:184;:64::i;5624:288:195:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:195;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:195;;;;5878:29;;;;;;;;:::i;5306:279:179:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:179;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2279:175:212:-;2329:30;2404:42;:40;:42::i;6512:295:179:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:179;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;7496:167:212:-;7558:4;7597:17;:15;:17::i;:::-;:59;;;;;2830:37;;;7597:59;;;4284:25:230;-1:-1:-1;;;;;7597:25:212;;;;;;;4257:18:230;;7597:59:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7581:75:212;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7581:75:212;;;7496:167;-1:-1:-1;;7496:167:212:o;6279:248:195:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:195;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;13290:3:230;13286:16;;;;13304:66;13282:89;13270:102;;13397:1;13388:11;;13145:260;6477:30:195;;;;-1:-1:-1;;6477:30:195;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13966:98:230;13939:18;;3713:52:107;13822:248:230;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;15666:552:195:-;15737:24;15764:207;15784:6;:15;;;15807:6;:14;;;15829:6;:12;;;15849:6;:19;;;15876:6;:20;;;15904:6;:16;;;15928:6;:17;;;15953:6;:12;;;15764;:207::i;:::-;16075:16;;;16089:1;16075:16;;;;;;;;;15737:234;;-1:-1:-1;15978:30:195;;16014:25;;15978:30;;16075:16;;;;;;;;;;;;-1:-1:-1;16075:16:195;16046:45;;16112:8;16097:9;16107:1;16097:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;16127:86;1310:66;16159:9;16170:11;16183:15;16200:12;16127:21;:86::i;:::-;15731:487;;;;15666:552;;:::o;7183:249:179:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:179;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12903:14:230;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4071:290:179;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:195:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:195;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:195:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:195;;;;-1:-1:-1;17879:370:195;;;-1:-1:-1;;;;;17879:370:195:o;5147:257:196:-;5258:16;;;5199:22;5258:16;;;;;;;;;5281:13;5297:64;1269:66;5229:45;5345:1;1398:66;5297:26;:64::i;:::-;5375:23;;;5147:257;-1:-1:-1;;;5147:257:196:o;2640:388:181:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:181;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:181;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:181;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:181:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:181;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:181;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;4646:27:181;;;;-1:-1:-1;;4646:27:181;;;;;;;;;-1:-1:-1;;;4595:26:181;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;18916:362:195:-;19145:12;19189:8;19199:7;19208:5;19215:12;19229:13;19244:9;19255:10;19267:5;19172:101;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19165:108;;18916:362;;;;;;;;;;:::o;6458:480:46:-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;6692:242::-;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;1836:227::-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:195:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:195;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:195;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:195;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:195;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:195;-1:-1:-1;;16961:760:195:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;12066:286:45;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4015:652:45;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;26250:12:230;26289:15;;;45340:92:45;;;26271:34:230;26341:15;;;26321:18;;;26314:43;26393:15;;26373:18;;;26366:43;26213:18;;45340:92:45;26044:371:230;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;26593:25:230;;;26666:12;26654:25;;26634:18;;;26627:53;26566:18;;45581:74:45;26420:266:230;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;28531:79:230;;2092:30:124;;;28519:92:230;2092:30:124;;28627:12:230;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;51249:282:45:-;51494:30;;;;;;29374:19:230;;;29409:12;;;29402:28;;;51337:7:45;;29446:12:230;;51494:30:45;29185:279:230;1489:2340:44;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:230;;;4257:18;;7664:67:24;4138:177:230;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:190;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:190;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:230:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:230;;14:180;-1:-1:-1;14:180:230:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:230;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:230;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1208:200;1148:266;:::o;1419:777::-;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:230;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:230;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:230;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:230:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:230;3037:15;-1:-1:-1;;3033:88:230;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:230:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:230;3925:18;;3912:32;;-1:-1:-1;3995:2:230;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4687:235::-;4833:2;4818:18;;4845:37;4875:6;4845:37;:::i;:::-;4891:25;;;4687:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:315::-;5406:6;5414;5467:2;5455:9;5446:7;5442:23;5438:32;5435:52;;;5483:1;5480;5473:12;5435:52;5519:9;5506:23;5496:33;;5579:2;5568:9;5564:18;5551:32;5592:31;5617:5;5592:31;:::i;:::-;5642:5;5632:15;;;5338:315;;;;;:::o;5658:390::-;5736:6;5744;5797:2;5785:9;5776:7;5772:23;5768:32;5765:52;;;5813:1;5810;5803:12;5765:52;5849:9;5836:23;5826:33;;5910:2;5899:9;5895:18;5882:32;5937:18;5929:6;5926:30;5923:50;;;5969:1;5966;5959:12;5923:50;5992;6034:7;6025:6;6014:9;6010:22;5992:50;:::i;:::-;5982:60;;;5658:390;;;;;:::o;6759:250::-;6844:1;6854:113;6868:6;6865:1;6862:13;6854:113;;;6944:11;;;6938:18;6925:11;;;6918:39;6890:2;6883:10;6854:113;;;-1:-1:-1;;7001:1:230;6983:16;;6976:27;6759:250::o;7014:329::-;7055:3;7093:5;7087:12;7120:6;7115:3;7108:19;7136:76;7205:6;7198:4;7193:3;7189:14;7182:4;7175:5;7171:16;7136:76;:::i;:::-;7257:2;7245:15;-1:-1:-1;;7241:88:230;7232:98;;;;7332:4;7228:109;;7014:329;-1:-1:-1;;7014:329:230:o;7348:320::-;7555:6;7544:9;7537:25;7598:2;7593;7582:9;7578:18;7571:30;7518:4;7618:44;7658:2;7647:9;7643:18;7635:6;7618:44;:::i;7673:442::-;7726:5;7779:3;7772:4;7764:6;7760:17;7756:27;7746:55;;7797:1;7794;7787:12;7746:55;7826:6;7820:13;7857:49;7873:32;7902:2;7873:32;:::i;7857:49::-;7931:2;7922:7;7915:19;7977:3;7970:4;7965:2;7957:6;7953:15;7949:26;7946:35;7943:55;;;7994:1;7991;7984:12;7943:55;8007:77;8081:2;8074:4;8065:7;8061:18;8054:4;8046:6;8042:17;8007:77;:::i;8120:335::-;8199:6;8252:2;8240:9;8231:7;8227:23;8223:32;8220:52;;;8268:1;8265;8258:12;8220:52;8301:9;8295:16;8334:18;8326:6;8323:30;8320:50;;;8366:1;8363;8356:12;8320:50;8389:60;8441:7;8432:6;8421:9;8417:22;8389:60;:::i;8808:184::-;-1:-1:-1;;;8857:1:230;8850:88;8957:4;8954:1;8947:15;8981:4;8978:1;8971:15;8997:125;9062:9;;;9083:10;;;9080:36;;;9096:18;;:::i;9127:195::-;9166:3;-1:-1:-1;;9190:5:230;9187:77;9184:103;;9267:18;;:::i;:::-;-1:-1:-1;9314:1:230;9303:13;;9127:195::o;9327:251::-;9397:6;9450:2;9438:9;9429:7;9425:23;9421:32;9418:52;;;9466:1;9463;9456:12;9418:52;9498:9;9492:16;9517:31;9542:5;9517:31;:::i;10343:424::-;10565:6;10554:9;10547:25;10581:37;10611:6;10581:37;:::i;:::-;10654:6;10649:2;10638:9;10634:18;10627:34;10697:2;10692;10681:9;10677:18;10670:30;10528:4;10717:44;10757:2;10746:9;10742:18;10734:6;10717:44;:::i;12107:184::-;-1:-1:-1;;;12156:1:230;12149:88;12256:4;12253:1;12246:15;12280:4;12277:1;12270:15;13410:407;13493:5;13533;13527:12;13575:4;13568:5;13564:16;13558:23;13600:66;13692:2;13688;13684:11;13675:20;;13718:1;13710:6;13707:13;13704:107;;;13798:2;13792;13782:6;13779:1;13775:14;13772:1;13768:22;13764:31;13760:2;13756:40;13752:49;13743:58;;13704:107;;;;13410:407;;;:::o;14075:439::-;14128:3;14166:5;14160:12;14193:6;14188:3;14181:19;14219:4;14248;14243:3;14239:14;14232:21;;14287:4;14280:5;14276:16;14310:1;14320:169;14334:6;14331:1;14328:13;14320:169;;;14395:13;;14383:26;;14429:12;;;;14464:15;;;;14356:1;14349:9;14320:169;;;-1:-1:-1;14505:3:230;;14075:439;-1:-1:-1;;;;;14075:439:230:o;14519:468::-;14819:6;14808:9;14801:25;14862:2;14857;14846:9;14842:18;14835:30;14782:4;14882:56;14934:2;14923:9;14919:18;14911:6;14882:56;:::i;:::-;14874:64;;14974:6;14969:2;14958:9;14954:18;14947:34;14519:468;;;;;;:::o;14992:655::-;15134:6;15142;15150;15203:2;15191:9;15182:7;15178:23;15174:32;15171:52;;;15219:1;15216;15209:12;15171:52;15252:9;15246:16;15281:18;15322:2;15314:6;15311:14;15308:34;;;15338:1;15335;15328:12;15308:34;15361:60;15413:7;15404:6;15393:9;15389:22;15361:60;:::i;:::-;15351:70;;15461:2;15450:9;15446:18;15440:25;15430:35;;15511:2;15500:9;15496:18;15490:25;15474:41;;15540:2;15530:8;15527:16;15524:36;;;15556:1;15553;15546:12;15524:36;;15579:62;15633:7;15622:8;15611:9;15607:24;15579:62;:::i;15652:709::-;16022:6;16011:9;16004:25;16065:3;16060:2;16049:9;16045:18;16038:31;15985:4;16092:57;16144:3;16133:9;16129:19;16121:6;16092:57;:::i;:::-;16197:4;16189:6;16185:17;16180:2;16169:9;16165:18;16158:45;16251:9;16243:6;16239:22;16234:2;16223:9;16219:18;16212:50;16279:32;16304:6;16296;16279:32;:::i;:::-;16271:40;;;16348:6;16342:3;16331:9;16327:19;16320:35;15652:709;;;;;;;;:::o;16366:548::-;16690:6;16679:9;16672:25;16733:3;16728:2;16717:9;16713:18;16706:31;16653:4;16754:57;16806:3;16795:9;16791:19;16783:6;16754:57;:::i;:::-;16859:4;16847:17;;;;16842:2;16827:18;;16820:45;-1:-1:-1;16896:2:230;16881:18;16874:34;16746:65;16366:548;-1:-1:-1;;16366:548:230:o;16919:184::-;16989:6;17042:2;17030:9;17021:7;17017:23;17013:32;17010:52;;;17058:1;17055;17048:12;17010:52;-1:-1:-1;17081:16:230;;16919:184;-1:-1:-1;16919:184:230:o;17108:707::-;17455:6;17450:3;17443:19;17492:6;17487:2;17482:3;17478:12;17471:28;17508:37;17538:6;17508:37;:::i;:::-;17579:3;17575:16;;;;17570:2;17561:12;;17554:38;17617:2;17608:12;;17601:28;;;;17654:2;17645:12;;17638:28;;;;17691:3;17682:13;;17675:29;17729:3;17720:13;;17713:29;17767:3;17758:13;;17751:29;17805:3;17796:13;;17108:707;-1:-1:-1;;17108:707:230:o;17820:794::-;18215:6;18204:9;18197:25;18258:3;18253:2;18242:9;18238:18;18231:31;18178:4;18285:57;18337:3;18326:9;18322:19;18314:6;18285:57;:::i;:::-;18390:9;18382:6;18378:22;18373:2;18362:9;18358:18;18351:50;18424:32;18449:6;18441;18424:32;:::i;:::-;18410:46;;18492:6;18487:2;18476:9;18472:18;18465:34;18548:9;18540:6;18536:22;18530:3;18519:9;18515:19;18508:51;18576:32;18601:6;18593;18576:32;:::i;:::-;18568:40;17820:794;-1:-1:-1;;;;;;;;17820:794:230:o;18619:175::-;18656:3;18700:4;18693:5;18689:16;18729:4;18720:7;18717:17;18714:43;;18737:18;;:::i;:::-;18786:1;18773:15;;18619:175;-1:-1:-1;;18619:175:230:o;18799:604::-;19108:6;19097:9;19090:25;19151:3;19146:2;19135:9;19131:18;19124:31;19071:4;19178:57;19230:3;19219:9;19215:19;19207:6;19178:57;:::i;:::-;19283:4;19275:6;19271:17;19266:2;19255:9;19251:18;19244:45;19337:9;19329:6;19325:22;19320:2;19309:9;19305:18;19298:50;19365:32;19390:6;19382;19365:32;:::i;:::-;19357:40;18799:604;-1:-1:-1;;;;;;;18799:604:230:o;19735:128::-;19802:9;;;19823:11;;;19820:37;;;19837:18;;:::i;19868:168::-;19941:9;;;19972;;19989:15;;;19983:22;;19969:37;19959:71;;20010:18;;:::i;20041:640::-;20292:6;20287:3;20280:19;20262:3;20318:2;20351;20346:3;20342:12;20383:6;20377:13;20448:2;20440:6;20436:15;20469:1;20479:175;20493:6;20490:1;20487:13;20479:175;;;20556:13;;20542:28;;20592:14;;;;20629:15;;;;20515:1;20508:9;20479:175;;;-1:-1:-1;20670:5:230;;20041:640;-1:-1:-1;;;;;;;20041:640:230:o;20686:184::-;-1:-1:-1;;;20735:1:230;20728:88;20835:4;20832:1;20825:15;20859:4;20856:1;20849:15;20875:511;21126:2;21115:9;21108:21;21089:4;21152:56;21204:2;21193:9;21189:18;21181:6;21152:56;:::i;:::-;21256:14;21248:6;21244:27;21239:2;21228:9;21224:18;21217:55;21320:9;21312:6;21308:22;21303:2;21292:9;21288:18;21281:50;21348:32;21373:6;21365;21348:32;:::i;21391:616::-;21702:6;21691:9;21684:25;21745:3;21740:2;21729:9;21725:18;21718:31;21665:4;21772:57;21824:3;21813:9;21809:19;21801:6;21772:57;:::i;:::-;21877:14;21869:6;21865:27;21860:2;21849:9;21845:18;21838:55;21941:9;21933:6;21929:22;21924:2;21913:9;21909:18;21902:50;21969:32;21994:6;21986;21969:32;:::i;22012:925::-;22461:66;22453:6;22449:79;22444:3;22437:92;22419:3;22548;22580:2;22576:1;22571:3;22567:11;22560:23;22612:6;22606:13;22628:74;22695:6;22691:1;22686:3;22682:11;22675:4;22667:6;22663:17;22628:74;:::i;:::-;22730:6;22725:3;22721:16;22711:26;;22765:2;22761:1;22757:2;22753:10;22746:22;22799:6;22793:13;22777:29;;22815:75;22881:8;22877:1;22873:2;22869:10;22862:4;22854:6;22850:17;22815:75;:::i;:::-;22910:17;22929:1;22906:25;;22012:925;-1:-1:-1;;;;;22012:925:230:o;22942:339::-;23119:2;23108:9;23101:21;23082:4;23139:44;23179:2;23168:9;23164:18;23156:6;23139:44;:::i;:::-;23131:52;;-1:-1:-1;;;;;23223:6:230;23219:55;23214:2;23203:9;23199:18;23192:83;22942:339;;;;;:::o;23286:287::-;23415:3;23453:6;23447:13;23469:66;23528:6;23523:3;23516:4;23508:6;23504:17;23469:66;:::i;:::-;23551:16;;;;;23286:287;-1:-1:-1;;23286:287:230:o;23578:690::-;23913:3;23902:9;23895:22;23876:4;23940:57;23992:3;23981:9;23977:19;23969:6;23940:57;:::i;:::-;24045:9;24037:6;24033:22;24028:2;24017:9;24013:18;24006:50;24079:32;24104:6;24096;24079:32;:::i;:::-;24065:46;;24147:6;24142:2;24131:9;24127:18;24120:34;24202:9;24194:6;24190:22;24185:2;24174:9;24170:18;24163:50;24230:32;24255:6;24247;24230:32;:::i;24273:899::-;24729:6;24718:9;24711:25;24772:3;24767:2;24756:9;24752:18;24745:31;24692:4;24799:57;24851:3;24840:9;24836:19;24828:6;24799:57;:::i;:::-;24904:9;24896:6;24892:22;24887:2;24876:9;24872:18;24865:50;24938:32;24963:6;24955;24938:32;:::i;:::-;24924:46;;25006:6;25001:2;24990:9;24986:18;24979:34;25062:9;25054:6;25050:22;25044:3;25033:9;25029:19;25022:51;25090:32;25115:6;25107;25090:32;:::i;:::-;25082:40;;;25159:6;25153:3;25142:9;25138:19;25131:35;24273:899;;;;;;;;;:::o;25396:464::-;25643:66;25635:6;25631:79;25620:9;25613:98;25747:6;25742:2;25731:9;25727:18;25720:34;25790:2;25785;25774:9;25770:18;25763:30;25594:4;25810:44;25850:2;25839:9;25835:18;25827:6;25810:44;:::i;25865:174::-;25932:12;25964:10;;;25976;;;25960:27;;25999:11;;;25996:37;;;26013:18;;:::i;:::-;25996:37;25865:174;;;;:::o;26691:901::-;27116:6;27105:9;27098:25;27159:3;27154:2;27143:9;27139:18;27132:31;27079:4;27186:57;27238:3;27227:9;27223:19;27215:6;27186:57;:::i;:::-;27291:4;27279:17;;27274:2;27259:18;;27252:45;27316:12;27364:15;;;27359:2;27344:18;;27337:43;27417:15;;27411:3;27396:19;;27389:44;27464:3;27449:19;;27442:35;;;27514:22;;;27508:3;27493:19;;27486:51;27554:32;27518:6;27571;27554:32;:::i;:::-;27546:40;26691:901;-1:-1:-1;;;;;;;;;;26691:901:230:o;27597:788::-;27962:3;27951:9;27944:22;27925:4;27989:57;28041:3;28030:9;28026:19;28018:6;27989:57;:::i;:::-;28094:4;28086:6;28082:17;28077:2;28066:9;28062:18;28055:45;28148:14;28140:6;28136:27;28131:2;28120:9;28116:18;28109:55;28212:12;28204:6;28200:25;28195:2;28184:9;28180:18;28173:53;28263:6;28257:3;28246:9;28242:19;28235:35;28319:9;28311:6;28307:22;28301:3;28290:9;28286:19;28279:51;28347:32;28372:6;28364;28347:32;:::i;:::-;28339:40;27597:788;-1:-1:-1;;;;;;;;;27597:788:230:o;28650:530::-;28835:3;28873:6;28867:13;28889:66;28948:6;28943:3;28936:4;28928:6;28924:17;28889:66;:::i;:::-;29024:2;29020:15;;;;-1:-1:-1;;29016:88:230;28977:16;;;;29002:103;;;29132:2;29121:14;;29114:30;;;;29171:2;29160:14;;28650:530;-1:-1:-1;;28650:530:230:o;29469:359::-;29672:2;29661:9;29654:21;29635:4;29692:44;29732:2;29721:9;29717:18;29709:6;29692:44;:::i;:::-;29767:2;29752:18;;29745:34;;;;-1:-1:-1;29810:2:230;29795:18;29788:34;29684:52;29469:359;-1:-1:-1;29469:359:230:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentAvailableLevel(uint256)":"1ecb393f","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","isValidOwner(bytes32,address)":"9b63ec05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c\",\"dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465\",\"dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN\"]},\"src/utils.sol\":{\"keccak256\":\"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57\",\"dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"isValidOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059","urls":["bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c","dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488","urls":["bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465","dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc","urls":["bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57","dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q"],"license":"MIT"}},"version":1},"id":212} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061497d806100206000396000f3fe6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea26469706673582212204deccb9419a7b573ca2234043bad6b29d39c7da804e610638a434a8c790364dd64736f6c63430008180033","sourceMap":"1812:6250:212:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea26469706673582212204deccb9419a7b573ca2234043bad6b29d39c7da804e610638a434a8c790364dd64736f6c63430008180033","sourceMap":"1812:6250:212:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:144;;;;;;;;;;-1:-1:-1;2973:144:212;;;;;:::i;:::-;3106:2;3082:26;;2973:144;;;;-1:-1:-1;;;;;363:55:229;;;345:74;;333:2;318:18;2973:144:212;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:229;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:229;7936:124:212;;;;;;;;;;-1:-1:-1;7936:124:212;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;4111:837:212:-;;;;;;;;;;-1:-1:-1;4111:837:212;;;;;:::i;:::-;;:::i;:::-;;;4284:25:229;;;4272:2;4257:18;4111:837:212;4138:177:229;6106:492:212;;;;;;;;;;-1:-1:-1;6106:492:212;;;;;:::i;:::-;;:::i;1989:129::-;;;;;;;;;;-1:-1:-1;1989:129:212;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1853:130:212;;;;;;;;;;-1:-1:-1;1853:130:212;;;;;:::i;:::-;;:::i;3123:413::-;;;;;;;;;;-1:-1:-1;3123:413:212;;;;;:::i;:::-;;:::i;4954:545::-;;;;;;:::i;:::-;;:::i;:::-;;2460:266;;;;;;;;;;-1:-1:-1;2460:266:212;;;;;:::i;:::-;;:::i;3542:212::-;;;;;;;;;;-1:-1:-1;3542:212:212;;;;;:::i;:::-;;:::i;6604:219::-;;;;;;;;;;-1:-1:-1;6604:219:212;;;;;:::i;:::-;;:::i;5505:595::-;;;;;;;;;;-1:-1:-1;5505:595:212;;;;;:::i;:::-;;:::i;7669:125::-;;;;;;;;;;-1:-1:-1;7669:125:212;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7800:130:212:-;;;;;;;;;;-1:-1:-1;7800:130:212;;;;;:::i;:::-;;:::i;2732:143::-;;;;;;;;;;-1:-1:-1;2732:143:212;;;;;:::i;:::-;2830:37;;;2732:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7936:124:212:-;7996:16;;:::i;:::-;8031:22;8041:11;8031:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;4111:837:212:-;4221:19;4256:24;4283:28;:26;:28::i;:::-;4256:55;-1:-1:-1;4348:16:212;4329:35;;4321:83;;;;-1:-1:-1;;;4321:83:212;;6255:2:229;4321:83:212;;;6237:21:229;6294:2;6274:18;;;6267:30;6333:34;6313:18;;;6306:62;6404:5;6384:18;;;6377:33;6427:19;;4321:83:212;;;;;;;;;4421:8;:6;:8::i;:::-;-1:-1:-1;;;;;4414:21:212;;4449:37;4465:20;4449:15;:37::i;:::-;4488:65;;-1:-1:-1;;;;;6649:55:229;;4488:65:212;;;6631:74:229;6721:18;;;6714:34;;;6604:18;;4488:65:212;;;-1:-1:-1;;4488:65:212;;;;;;;;;;;;;;;;;;;;4414:149;;4488:65;4414:149;;;;;;;;;4488:65;4414:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4414:149:212;;;;;;;;;;;;:::i;:::-;;4587:35;4605:16;4587:17;:35::i;:::-;4573:49;;4632:41;4652:11;4665:7;4632:19;:41::i;:::-;4683:52;4705:11;4718:16;4683:21;:52::i;:::-;4754:25;4774:4;4754:19;:25::i;:::-;4753:26;4745:58;;;;-1:-1:-1;;;4745:58:212;;8662:2:229;4745:58:212;;;8644:21:229;8701:2;8681:18;;;8674:30;8740:21;8720:18;;;8713:49;8779:18;;4745:58:212;8460:343:229;4745:58:212;4813:31;4833:4;4839;4813:19;:31::i;:::-;4854:37;4873:11;4886:4;4854:18;:37::i;:::-;4901:40;4914:16;4932:8;4901:12;:40::i;:::-;4246:702;4111:837;;;;;:::o;6106:492::-;6181:20;6231:14;6242:2;6231:10;:14::i;:::-;6217:10;:28;6213:379;;-1:-1:-1;6276:2:212;6106:492;;;:::o;6213:379::-;6314:9;6309:273;6329:2;6325:1;:6;6309:273;;;6373:10;6356:13;6367:1;6356:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;6407:10:212;6387:17;6398:5;:1;6402;6398:5;:::i;:::-;6387:10;:17::i;:::-;:30;6356:61;6352:155;;;6456:5;:1;6460;6456:5;:::i;:::-;6441:20;;6483:5;;6352:155;6546:3;;;;:::i;:::-;;;;6309:273;;;;6106:492;;;:::o;1989:129::-;2049:14;2084:27;2099:11;2084:14;:27::i;1853:130::-;1912:13;1945:31;1964:11;1945:18;:31::i;3123:413::-;3193:4;3209:20;3232:28;3248:11;3106:2;3082:26;;2973:144;3232:28;3209:51;-1:-1:-1;2830:37:212;;;3270:15;3359:17;:15;:17::i;:::-;-1:-1:-1;;;;;3359:25:212;;3385:7;3359:34;;;;;;;;;;;;;4284:25:229;;4272:2;4257:18;;4138:177;3359:34:212;;;;;;;;;;;;;;;;;;;-1:-1:-1;3359:34:212;;;;;;;;-1:-1:-1;;3359:34:212;;;;;;;;;;;;:::i;:::-;;;3355:135;;;3436:17;:15;:17::i;:::-;-1:-1:-1;;;;;3436:25:212;;3462:7;3436:34;;;;;;;;;;;;;4284:25:229;;4272:2;4257:18;;4138:177;3436:34:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3426:44;;3394:87;3355:135;3517:12;-1:-1:-1;;;;;3506:23:212;:7;-1:-1:-1;;;;;3506:23:212;;3499:30;;;;;3123:413;;;:::o;4954:545::-;5069:33;5090:11;5069:20;:33::i;:::-;5068:34;5060:90;;;;-1:-1:-1;;;5060:90:212;;9785:2:229;5060:90:212;;;9767:21:229;9824:2;9804:18;;;9797:30;9863:34;9843:18;;;9836:62;9934:13;9914:18;;;9907:41;9965:19;;5060:90:212;9583:407:229;5060:90:212;5168:21;5177:11;5168:8;:21::i;:::-;5160:53;;;;-1:-1:-1;;;5160:53:212;;10197:2:229;5160:53:212;;;10179:21:229;10236:2;10216:18;;;10209:30;10275:21;10255:18;;;10248:49;10314:18;;5160:53:212;9995:343:229;5160:53:212;5223:26;5291:34;5306:11;5319:5;5291:14;:34::i;:::-;5382:110;5435:16;5453:11;5477;5466:23;;;;;;4284:25:229;;4272:2;4257:18;;4138:177;5466:23:212;;;;-1:-1:-1;;5466:23:212;;;;;;;;;;5400:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5400:91:212;;;;;;;;;;;;;;;;;;;;5382:17;:110::i;:::-;;5050:449;4954:545;;;:::o;2460:266::-;2534:19;2565:20;2588:17;:15;:17::i;:::-;-1:-1:-1;;;;;2588:25:212;;2614:16;2588:43;;;;;;;;;;;;;4284:25:229;;4272:2;4257:18;;4138:177;2588:43:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2697:2;2663:36;-1:-1:-1;;2663:36:212;:55;;;;;;-1:-1:-1;;2460:266:212:o;3542:212::-;3621:4;3644:31;3663:11;3644:18;:31::i;:::-;:103;;;;;3742:5;-1:-1:-1;;;;;3679:68:212;:17;:15;:17::i;:::-;:59;;;;;2830:37;;;3679:59;;;4284:25:229;-1:-1:-1;;;;;3679:25:212;;;;;;;4257:18:229;;3679:59:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3679:68:212;;3644:103;3637:110;3542:212;-1:-1:-1;;;3542:212:212:o;6604:219::-;6698:21;6707:11;6698:8;:21::i;:::-;6690:60;;;;-1:-1:-1;;;6690:60:212;;10974:2:229;6690:60:212;;;10956:21:229;11013:2;10993:18;;;10986:30;11052:28;11032:18;;;11025:56;11098:18;;6690:60:212;10772:350:229;6690:60:212;6760:56;2830:37;;;6807:8;6760:12;:56::i;:::-;6604:219;;:::o;5505:595::-;5570:21;5579:11;5570:8;:21::i;:::-;5562:52;;;;-1:-1:-1;;;5562:52:212;;11329:2:229;5562:52:212;;;11311:21:229;11368:2;11348:18;;;11341:30;11407:20;11387:18;;;11380:48;11445:18;;5562:52:212;11127:342:229;5562:52:212;5633:33;5654:11;5633:20;:33::i;:::-;5632:34;5624:72;;;;-1:-1:-1;;;5624:72:212;;11676:2:229;5624:72:212;;;11658:21:229;11715:2;11695:18;;;11688:30;11754:27;11734:18;;;11727:55;11799:18;;5624:72:212;11474:349:229;5624:72:212;5706:26;5735:22;5745:11;5735:9;:22::i;:::-;5785:1;5767:15;;;:19;5825:23;;;;5796:19;;;:53;5706:51;-1:-1:-1;5859:33:212;5869:11;5706:51;5859:9;:33::i;:::-;5909:8;:6;:8::i;:::-;5902:51;;;;;;;;12028:25:229;;;5945:7:212;12069:18:229;;;12062:34;-1:-1:-1;;;;;5902:29:212;;;;;;;12001:18:229;;5902:51:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:8;:6;:8::i;:::-;-1:-1:-1;;;;;5993:38:212;;6032:11;5993:51;;;;;;;;;;;;;4284:25:229;;4272:2;4257:18;;4138:177;5993:51:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6054:39;6075:11;6088:4;6054:20;:39::i;7669:125::-;7729:7;7755:32;7775:11;7755:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7800:130:212:-;7865:7;7891:32;7911:11;7891:19;:32::i;13270:402:195:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:195;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:195:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;7003:347:212:-;7059:7;7078:25;7106:42;:40;:42::i;:::-;7078:70;;7158:24;7185:50;7213:17;7233:1;7185:19;:50::i;:::-;:54;;7238:1;7185:54;:::i;:::-;7158:81;;7249:61;7269:17;7288:1;7292:16;7249:19;:61::i;1157:186:220:-;1215:10;1240:100;1275:15;1303:9;1320:18;1240:25;:100::i;4730:249:179:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:179;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;12445:2:229;12441:15;;;;-1:-1:-1;;12437:88:229;12425:101;;12551:2;12542:12;;12296:264;4934:25:179;;;;-1:-1:-1;;4934:25:179;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:179;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12694:19:229;;12738:2;12729:12;;12565:182;2594:287:190;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:190;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:190:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:190;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12903:14:229;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4085:25:190;;;;-1:-1:-1;;4085:25:190;;;;;;;;;1198:66;4034:26;:91::i;5941:246:179:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:179;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12694:19:229;;12738:2;12729:12;;12565:182;6829:168:212;6911:79;6932:38;6949:20;6932:16;:38::i;:::-;6972:7;6981:8;6911:20;:79::i;3297:296:184:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:184;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:184;:64::i;5624:288:195:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:195;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:195;;;;5878:29;;;;;;;;:::i;5306:279:179:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:179;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2279:175:212:-;2329:30;2404:42;:40;:42::i;6512:295:179:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:179;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;7496:167:212:-;7558:4;7597:17;:15;:17::i;:::-;:59;;;;;2830:37;;;7597:59;;;4284:25:229;-1:-1:-1;;;;;7597:25:212;;;;;;;4257:18:229;;7597:59:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7581:75:212;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7581:75:212;;;7496:167;-1:-1:-1;;7496:167:212:o;6279:248:195:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:195;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;13290:3:229;13286:16;;;;13304:66;13282:89;13270:102;;13397:1;13388:11;;13145:260;6477:30:195;;;;-1:-1:-1;;6477:30:195;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13966:98:229;13939:18;;3713:52:107;13822:248:229;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;15666:552:195:-;15737:24;15764:207;15784:6;:15;;;15807:6;:14;;;15829:6;:12;;;15849:6;:19;;;15876:6;:20;;;15904:6;:16;;;15928:6;:17;;;15953:6;:12;;;15764;:207::i;:::-;16075:16;;;16089:1;16075:16;;;;;;;;;15737:234;;-1:-1:-1;15978:30:195;;16014:25;;15978:30;;16075:16;;;;;;;;;;;;-1:-1:-1;16075:16:195;16046:45;;16112:8;16097:9;16107:1;16097:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;16127:86;1310:66;16159:9;16170:11;16183:15;16200:12;16127:21;:86::i;:::-;15731:487;;;;15666:552;;:::o;7183:249:179:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:179;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12903:14:229;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4071:290:179;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:195:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:195;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:195:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:195;;;;-1:-1:-1;17879:370:195;;;-1:-1:-1;;;;;17879:370:195:o;5147:257:196:-;5258:16;;;5199:22;5258:16;;;;;;;;;5281:13;5297:64;1269:66;5229:45;5345:1;1398:66;5297:26;:64::i;:::-;5375:23;;;5147:257;-1:-1:-1;;;5147:257:196:o;2640:388:181:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:181;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:181;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:181;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:181:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:181;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:181;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12694:19:229;;12738:2;12729:12;;12565:182;4646:27:181;;;;-1:-1:-1;;4646:27:181;;;;;;;;;-1:-1:-1;;;4595:26:181;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;18916:362:195:-;19145:12;19189:8;19199:7;19208:5;19215:12;19229:13;19244:9;19255:10;19267:5;19172:101;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19165:108;;18916:362;;;;;;;;;;:::o;6458:480:46:-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;6692:242::-;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;1836:227::-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:195:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:195;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:195;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:195;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:195;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:195;-1:-1:-1;;16961:760:195:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;12066:286:45;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12694:19:229;;12738:2;12729:12;;12565:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4015:652:45;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12694:19:229;;12738:2;12729:12;;12565:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;26250:12:229;26289:15;;;45340:92:45;;;26271:34:229;26341:15;;;26321:18;;;26314:43;26393:15;;26373:18;;;26366:43;26213:18;;45340:92:45;26044:371:229;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;26593:25:229;;;26666:12;26654:25;;26634:18;;;26627:53;26566:18;;45581:74:45;26420:266:229;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;28531:79:229;;2092:30:124;;;28519:92:229;2092:30:124;;28627:12:229;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;51249:282:45:-;51494:30;;;;;;29374:19:229;;;29409:12;;;29402:28;;;51337:7:45;;29446:12:229;;51494:30:45;29185:279:229;1489:2340:44;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:229;;;4257:18;;7664:67:24;4138:177:229;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:190;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:190;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:229:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:229;;14:180;-1:-1:-1;14:180:229:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:229;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:229;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1208:200;1148:266;:::o;1419:777::-;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:229;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:229;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:229;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:229:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:229;3037:15;-1:-1:-1;;3033:88:229;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:229:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:229;3925:18;;3912:32;;-1:-1:-1;3995:2:229;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4687:235::-;4833:2;4818:18;;4845:37;4875:6;4845:37;:::i;:::-;4891:25;;;4687:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:315::-;5406:6;5414;5467:2;5455:9;5446:7;5442:23;5438:32;5435:52;;;5483:1;5480;5473:12;5435:52;5519:9;5506:23;5496:33;;5579:2;5568:9;5564:18;5551:32;5592:31;5617:5;5592:31;:::i;:::-;5642:5;5632:15;;;5338:315;;;;;:::o;5658:390::-;5736:6;5744;5797:2;5785:9;5776:7;5772:23;5768:32;5765:52;;;5813:1;5810;5803:12;5765:52;5849:9;5836:23;5826:33;;5910:2;5899:9;5895:18;5882:32;5937:18;5929:6;5926:30;5923:50;;;5969:1;5966;5959:12;5923:50;5992;6034:7;6025:6;6014:9;6010:22;5992:50;:::i;:::-;5982:60;;;5658:390;;;;;:::o;6759:250::-;6844:1;6854:113;6868:6;6865:1;6862:13;6854:113;;;6944:11;;;6938:18;6925:11;;;6918:39;6890:2;6883:10;6854:113;;;-1:-1:-1;;7001:1:229;6983:16;;6976:27;6759:250::o;7014:329::-;7055:3;7093:5;7087:12;7120:6;7115:3;7108:19;7136:76;7205:6;7198:4;7193:3;7189:14;7182:4;7175:5;7171:16;7136:76;:::i;:::-;7257:2;7245:15;-1:-1:-1;;7241:88:229;7232:98;;;;7332:4;7228:109;;7014:329;-1:-1:-1;;7014:329:229:o;7348:320::-;7555:6;7544:9;7537:25;7598:2;7593;7582:9;7578:18;7571:30;7518:4;7618:44;7658:2;7647:9;7643:18;7635:6;7618:44;:::i;7673:442::-;7726:5;7779:3;7772:4;7764:6;7760:17;7756:27;7746:55;;7797:1;7794;7787:12;7746:55;7826:6;7820:13;7857:49;7873:32;7902:2;7873:32;:::i;7857:49::-;7931:2;7922:7;7915:19;7977:3;7970:4;7965:2;7957:6;7953:15;7949:26;7946:35;7943:55;;;7994:1;7991;7984:12;7943:55;8007:77;8081:2;8074:4;8065:7;8061:18;8054:4;8046:6;8042:17;8007:77;:::i;8120:335::-;8199:6;8252:2;8240:9;8231:7;8227:23;8223:32;8220:52;;;8268:1;8265;8258:12;8220:52;8301:9;8295:16;8334:18;8326:6;8323:30;8320:50;;;8366:1;8363;8356:12;8320:50;8389:60;8441:7;8432:6;8421:9;8417:22;8389:60;:::i;8808:184::-;-1:-1:-1;;;8857:1:229;8850:88;8957:4;8954:1;8947:15;8981:4;8978:1;8971:15;8997:125;9062:9;;;9083:10;;;9080:36;;;9096:18;;:::i;9127:195::-;9166:3;-1:-1:-1;;9190:5:229;9187:77;9184:103;;9267:18;;:::i;:::-;-1:-1:-1;9314:1:229;9303:13;;9127:195::o;9327:251::-;9397:6;9450:2;9438:9;9429:7;9425:23;9421:32;9418:52;;;9466:1;9463;9456:12;9418:52;9498:9;9492:16;9517:31;9542:5;9517:31;:::i;10343:424::-;10565:6;10554:9;10547:25;10581:37;10611:6;10581:37;:::i;:::-;10654:6;10649:2;10638:9;10634:18;10627:34;10697:2;10692;10681:9;10677:18;10670:30;10528:4;10717:44;10757:2;10746:9;10742:18;10734:6;10717:44;:::i;12107:184::-;-1:-1:-1;;;12156:1:229;12149:88;12256:4;12253:1;12246:15;12280:4;12277:1;12270:15;13410:407;13493:5;13533;13527:12;13575:4;13568:5;13564:16;13558:23;13600:66;13692:2;13688;13684:11;13675:20;;13718:1;13710:6;13707:13;13704:107;;;13798:2;13792;13782:6;13779:1;13775:14;13772:1;13768:22;13764:31;13760:2;13756:40;13752:49;13743:58;;13704:107;;;;13410:407;;;:::o;14075:439::-;14128:3;14166:5;14160:12;14193:6;14188:3;14181:19;14219:4;14248;14243:3;14239:14;14232:21;;14287:4;14280:5;14276:16;14310:1;14320:169;14334:6;14331:1;14328:13;14320:169;;;14395:13;;14383:26;;14429:12;;;;14464:15;;;;14356:1;14349:9;14320:169;;;-1:-1:-1;14505:3:229;;14075:439;-1:-1:-1;;;;;14075:439:229:o;14519:468::-;14819:6;14808:9;14801:25;14862:2;14857;14846:9;14842:18;14835:30;14782:4;14882:56;14934:2;14923:9;14919:18;14911:6;14882:56;:::i;:::-;14874:64;;14974:6;14969:2;14958:9;14954:18;14947:34;14519:468;;;;;;:::o;14992:655::-;15134:6;15142;15150;15203:2;15191:9;15182:7;15178:23;15174:32;15171:52;;;15219:1;15216;15209:12;15171:52;15252:9;15246:16;15281:18;15322:2;15314:6;15311:14;15308:34;;;15338:1;15335;15328:12;15308:34;15361:60;15413:7;15404:6;15393:9;15389:22;15361:60;:::i;:::-;15351:70;;15461:2;15450:9;15446:18;15440:25;15430:35;;15511:2;15500:9;15496:18;15490:25;15474:41;;15540:2;15530:8;15527:16;15524:36;;;15556:1;15553;15546:12;15524:36;;15579:62;15633:7;15622:8;15611:9;15607:24;15579:62;:::i;15652:709::-;16022:6;16011:9;16004:25;16065:3;16060:2;16049:9;16045:18;16038:31;15985:4;16092:57;16144:3;16133:9;16129:19;16121:6;16092:57;:::i;:::-;16197:4;16189:6;16185:17;16180:2;16169:9;16165:18;16158:45;16251:9;16243:6;16239:22;16234:2;16223:9;16219:18;16212:50;16279:32;16304:6;16296;16279:32;:::i;:::-;16271:40;;;16348:6;16342:3;16331:9;16327:19;16320:35;15652:709;;;;;;;;:::o;16366:548::-;16690:6;16679:9;16672:25;16733:3;16728:2;16717:9;16713:18;16706:31;16653:4;16754:57;16806:3;16795:9;16791:19;16783:6;16754:57;:::i;:::-;16859:4;16847:17;;;;16842:2;16827:18;;16820:45;-1:-1:-1;16896:2:229;16881:18;16874:34;16746:65;16366:548;-1:-1:-1;;16366:548:229:o;16919:184::-;16989:6;17042:2;17030:9;17021:7;17017:23;17013:32;17010:52;;;17058:1;17055;17048:12;17010:52;-1:-1:-1;17081:16:229;;16919:184;-1:-1:-1;16919:184:229:o;17108:707::-;17455:6;17450:3;17443:19;17492:6;17487:2;17482:3;17478:12;17471:28;17508:37;17538:6;17508:37;:::i;:::-;17579:3;17575:16;;;;17570:2;17561:12;;17554:38;17617:2;17608:12;;17601:28;;;;17654:2;17645:12;;17638:28;;;;17691:3;17682:13;;17675:29;17729:3;17720:13;;17713:29;17767:3;17758:13;;17751:29;17805:3;17796:13;;17108:707;-1:-1:-1;;17108:707:229:o;17820:794::-;18215:6;18204:9;18197:25;18258:3;18253:2;18242:9;18238:18;18231:31;18178:4;18285:57;18337:3;18326:9;18322:19;18314:6;18285:57;:::i;:::-;18390:9;18382:6;18378:22;18373:2;18362:9;18358:18;18351:50;18424:32;18449:6;18441;18424:32;:::i;:::-;18410:46;;18492:6;18487:2;18476:9;18472:18;18465:34;18548:9;18540:6;18536:22;18530:3;18519:9;18515:19;18508:51;18576:32;18601:6;18593;18576:32;:::i;:::-;18568:40;17820:794;-1:-1:-1;;;;;;;;17820:794:229:o;18619:175::-;18656:3;18700:4;18693:5;18689:16;18729:4;18720:7;18717:17;18714:43;;18737:18;;:::i;:::-;18786:1;18773:15;;18619:175;-1:-1:-1;;18619:175:229:o;18799:604::-;19108:6;19097:9;19090:25;19151:3;19146:2;19135:9;19131:18;19124:31;19071:4;19178:57;19230:3;19219:9;19215:19;19207:6;19178:57;:::i;:::-;19283:4;19275:6;19271:17;19266:2;19255:9;19251:18;19244:45;19337:9;19329:6;19325:22;19320:2;19309:9;19305:18;19298:50;19365:32;19390:6;19382;19365:32;:::i;:::-;19357:40;18799:604;-1:-1:-1;;;;;;;18799:604:229:o;19735:128::-;19802:9;;;19823:11;;;19820:37;;;19837:18;;:::i;19868:168::-;19941:9;;;19972;;19989:15;;;19983:22;;19969:37;19959:71;;20010:18;;:::i;20041:640::-;20292:6;20287:3;20280:19;20262:3;20318:2;20351;20346:3;20342:12;20383:6;20377:13;20448:2;20440:6;20436:15;20469:1;20479:175;20493:6;20490:1;20487:13;20479:175;;;20556:13;;20542:28;;20592:14;;;;20629:15;;;;20515:1;20508:9;20479:175;;;-1:-1:-1;20670:5:229;;20041:640;-1:-1:-1;;;;;;;20041:640:229:o;20686:184::-;-1:-1:-1;;;20735:1:229;20728:88;20835:4;20832:1;20825:15;20859:4;20856:1;20849:15;20875:511;21126:2;21115:9;21108:21;21089:4;21152:56;21204:2;21193:9;21189:18;21181:6;21152:56;:::i;:::-;21256:14;21248:6;21244:27;21239:2;21228:9;21224:18;21217:55;21320:9;21312:6;21308:22;21303:2;21292:9;21288:18;21281:50;21348:32;21373:6;21365;21348:32;:::i;21391:616::-;21702:6;21691:9;21684:25;21745:3;21740:2;21729:9;21725:18;21718:31;21665:4;21772:57;21824:3;21813:9;21809:19;21801:6;21772:57;:::i;:::-;21877:14;21869:6;21865:27;21860:2;21849:9;21845:18;21838:55;21941:9;21933:6;21929:22;21924:2;21913:9;21909:18;21902:50;21969:32;21994:6;21986;21969:32;:::i;22012:925::-;22461:66;22453:6;22449:79;22444:3;22437:92;22419:3;22548;22580:2;22576:1;22571:3;22567:11;22560:23;22612:6;22606:13;22628:74;22695:6;22691:1;22686:3;22682:11;22675:4;22667:6;22663:17;22628:74;:::i;:::-;22730:6;22725:3;22721:16;22711:26;;22765:2;22761:1;22757:2;22753:10;22746:22;22799:6;22793:13;22777:29;;22815:75;22881:8;22877:1;22873:2;22869:10;22862:4;22854:6;22850:17;22815:75;:::i;:::-;22910:17;22929:1;22906:25;;22012:925;-1:-1:-1;;;;;22012:925:229:o;22942:339::-;23119:2;23108:9;23101:21;23082:4;23139:44;23179:2;23168:9;23164:18;23156:6;23139:44;:::i;:::-;23131:52;;-1:-1:-1;;;;;23223:6:229;23219:55;23214:2;23203:9;23199:18;23192:83;22942:339;;;;;:::o;23286:287::-;23415:3;23453:6;23447:13;23469:66;23528:6;23523:3;23516:4;23508:6;23504:17;23469:66;:::i;:::-;23551:16;;;;;23286:287;-1:-1:-1;;23286:287:229:o;23578:690::-;23913:3;23902:9;23895:22;23876:4;23940:57;23992:3;23981:9;23977:19;23969:6;23940:57;:::i;:::-;24045:9;24037:6;24033:22;24028:2;24017:9;24013:18;24006:50;24079:32;24104:6;24096;24079:32;:::i;:::-;24065:46;;24147:6;24142:2;24131:9;24127:18;24120:34;24202:9;24194:6;24190:22;24185:2;24174:9;24170:18;24163:50;24230:32;24255:6;24247;24230:32;:::i;24273:899::-;24729:6;24718:9;24711:25;24772:3;24767:2;24756:9;24752:18;24745:31;24692:4;24799:57;24851:3;24840:9;24836:19;24828:6;24799:57;:::i;:::-;24904:9;24896:6;24892:22;24887:2;24876:9;24872:18;24865:50;24938:32;24963:6;24955;24938:32;:::i;:::-;24924:46;;25006:6;25001:2;24990:9;24986:18;24979:34;25062:9;25054:6;25050:22;25044:3;25033:9;25029:19;25022:51;25090:32;25115:6;25107;25090:32;:::i;:::-;25082:40;;;25159:6;25153:3;25142:9;25138:19;25131:35;24273:899;;;;;;;;;:::o;25396:464::-;25643:66;25635:6;25631:79;25620:9;25613:98;25747:6;25742:2;25731:9;25727:18;25720:34;25790:2;25785;25774:9;25770:18;25763:30;25594:4;25810:44;25850:2;25839:9;25835:18;25827:6;25810:44;:::i;25865:174::-;25932:12;25964:10;;;25976;;;25960:27;;25999:11;;;25996:37;;;26013:18;;:::i;:::-;25996:37;25865:174;;;;:::o;26691:901::-;27116:6;27105:9;27098:25;27159:3;27154:2;27143:9;27139:18;27132:31;27079:4;27186:57;27238:3;27227:9;27223:19;27215:6;27186:57;:::i;:::-;27291:4;27279:17;;27274:2;27259:18;;27252:45;27316:12;27364:15;;;27359:2;27344:18;;27337:43;27417:15;;27411:3;27396:19;;27389:44;27464:3;27449:19;;27442:35;;;27514:22;;;27508:3;27493:19;;27486:51;27554:32;27518:6;27571;27554:32;:::i;:::-;27546:40;26691:901;-1:-1:-1;;;;;;;;;;26691:901:229:o;27597:788::-;27962:3;27951:9;27944:22;27925:4;27989:57;28041:3;28030:9;28026:19;28018:6;27989:57;:::i;:::-;28094:4;28086:6;28082:17;28077:2;28066:9;28062:18;28055:45;28148:14;28140:6;28136:27;28131:2;28120:9;28116:18;28109:55;28212:12;28204:6;28200:25;28195:2;28184:9;28180:18;28173:53;28263:6;28257:3;28246:9;28242:19;28235:35;28319:9;28311:6;28307:22;28301:3;28290:9;28286:19;28279:51;28347:32;28372:6;28364;28347:32;:::i;:::-;28339:40;27597:788;-1:-1:-1;;;;;;;;;27597:788:229:o;28650:530::-;28835:3;28873:6;28867:13;28889:66;28948:6;28943:3;28936:4;28928:6;28924:17;28889:66;:::i;:::-;29024:2;29020:15;;;;-1:-1:-1;;29016:88:229;28977:16;;;;29002:103;;;29132:2;29121:14;;29114:30;;;;29171:2;29160:14;;28650:530;-1:-1:-1;;28650:530:229:o;29469:359::-;29672:2;29661:9;29654:21;29635:4;29692:44;29732:2;29721:9;29717:18;29709:6;29692:44;:::i;:::-;29767:2;29752:18;;29745:34;;;;-1:-1:-1;29810:2:229;29795:18;29788:34;29684:52;29469:359;-1:-1:-1;29469:359:229:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentAvailableLevel(uint256)":"1ecb393f","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","isValidOwner(bytes32,address)":"9b63ec05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c\",\"dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x943ef4b0829ceb23d0097941f8c24a67f038025a5f72a67ef6340e138388047d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767a0ed4acd401dbb6cc6a0ebab193757b58aec6d27830d87e88ce806339dc25\",\"dweb:/ipfs/QmRb7c9tQkcV2G3UwhcS89G7GcDYbtVzF4A1afpZsdUD55\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465\",\"dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN\"]},\"src/utils.sol\":{\"keccak256\":\"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57\",\"dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"isValidOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059","urls":["bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c","dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x943ef4b0829ceb23d0097941f8c24a67f038025a5f72a67ef6340e138388047d","urls":["bzz-raw://767a0ed4acd401dbb6cc6a0ebab193757b58aec6d27830d87e88ce806339dc25","dweb:/ipfs/QmRb7c9tQkcV2G3UwhcS89G7GcDYbtVzF4A1afpZsdUD55"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488","urls":["bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465","dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc","urls":["bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57","dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q"],"license":"MIT"}},"version":1},"id":212} \ No newline at end of file diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json b/packages/contracts/out/IWorld.sol/IWorld.abi.json index ff99256ba..dbb72ea8f 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json @@ -185,6 +185,30 @@ ], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "UD__calculateItemDrop", + "inputs": [ + { + "name": "randomNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "itemId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__checkRequirements", diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts index 671df33ca..6707f3eeb 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts @@ -185,6 +185,30 @@ declare const abi: [ ], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "UD__calculateItemDrop", + "inputs": [ + { + "name": "randomNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "itemId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__checkRequirements", diff --git a/packages/contracts/out/IWorld.sol/IWorld.json b/packages/contracts/out/IWorld.sol/IWorld.json index 3e49e5fa3..18995918a 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.json +++ b/packages/contracts/out/IWorld.sol/IWorld.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"UD___calculateMagicAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD___calculatePhysicalAttack","inputs":[{"name":"attackStats","type":"tuple","internalType":"struct PhysicalAttackStats","components":[{"name":"bonusDamage","type":"int256","internalType":"int256"},{"name":"armorPenetration","type":"int256","internalType":"int256"},{"name":"attackModifierBonus","type":"int256","internalType":"int256"},{"name":"critChanceBonus","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"}]},{"name":"attackerId","type":"bytes32","internalType":"bytes32"},{"name":"defenderId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"damage","type":"int256","internalType":"int256"},{"name":"hit","type":"bool","internalType":"bool"},{"name":"crit","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__applyEquipmentBonuses","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"modifiedStats","type":"tuple","internalType":"struct AdjustedCombatStats","components":[{"name":"adjustedStrength","type":"uint256","internalType":"uint256"},{"name":"adjustedAgility","type":"uint256","internalType":"uint256"},{"name":"adjustedIntelligence","type":"uint256","internalType":"uint256"},{"name":"adjustedArmor","type":"uint256","internalType":"uint256"},{"name":"adjustedMaxHp","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__assignActionToCharacter","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__calculateGoldDrop","inputs":[{"name":"mobLevel","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dropAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canUse","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createAction","inputs":[{"name":"actionType","type":"uint8","internalType":"enum ActionType"},{"name":"actionStats","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"dropChance","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"dropChances","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropGold","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItem","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItems","inputs":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"characterIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__endTurn","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipAction","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__executeCombat","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getArmorStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_ArmorStats","type":"tuple","internalType":"struct ArmorStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"armorModifier","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentItemsCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEncounter","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_encounterData","type":"tuple","internalType":"struct CombatEncounterData","components":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"},{"name":"currentTurn","type":"uint256","internalType":"uint256"},{"name":"maxTurns","type":"uint256","internalType":"uint256"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getLootManagerSystem","inputs":[],"outputs":[{"name":"_lootManager","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMobId","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMobPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMulticallContract","inputs":[],"outputs":[{"name":"_multicall","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"UD__getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getSpawnCounter","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct StarterItemsData","components":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"maxDamage","type":"uint256","internalType":"uint256"},{"name":"minDamage","type":"uint256","internalType":"uint256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isItemOwner","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"participants","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidPvE","inputs":[{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isValidPvE","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawnMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD___calculateMagicAttack()":"e0cac377","UD___calculatePhysicalAttack((int256,int256,int256,int256,uint8[]),bytes32,bytes32,uint256,uint256)":"bf81ff5d","UD__applyEquipmentBonuses(bytes32)":"54f1f2db","UD__assignActionToCharacter(bytes32,bytes32)":"854cd561","UD__calculateGoldDrop(uint256,uint256)":"c3505171","UD__checkRequirements(bytes32,uint256)":"bf4dbebc","UD__createAction(uint8,bytes)":"c3344bd2","UD__createItem(uint8,uint256,uint256,bytes,string)":"c2647a81","UD__createItems(uint8[],uint256[],uint256[],bytes[],string[])":"8a2d4e05","UD__createMatch(uint8,bytes32[],bytes32[])":"3e602b01","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__dropGold(bytes32,uint256)":"fda0ce50","UD__dropItem(uint256,uint256,bytes32)":"88c571e1","UD__dropItems(uint256[],uint256[],bytes32[])":"e45cde14","UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"1f357129","UD__enterGame(bytes32)":"b968fa3a","UD__equipAction(bytes32,bytes32)":"3d37a73e","UD__equipItems(bytes32,uint256[])":"2d9ac2be","UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"a0ba1f1e","UD__getArmorStats(uint256)":"e75aa93b","UD__getCharacterToken()":"49d8cf02","UD__getCharacterTokenId(bytes32)":"d97302d0","UD__getClass(bytes32)":"0ae6f9ab","UD__getCurrentAvailableLevel(uint256)":"d453e623","UD__getCurrentItemsCounter()":"4652f280","UD__getEncounter(bytes32)":"55faf03a","UD__getEntitiesAtPosition(uint16,uint16)":"d0f8a4f5","UD__getEntropy()":"b5c691c7","UD__getExperience(bytes32)":"a8b79e60","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getLootManagerSystem()":"f2cb96f2","UD__getMob(bytes32)":"5ac36570","UD__getMob(uint256)":"622834d0","UD__getMobId(bytes32)":"53d64640","UD__getMobPosition(bytes32)":"8b3f8277","UD__getMonsterStats(bytes32)":"e6c22e06","UD__getMonsterStats(uint256)":"91b22373","UD__getMulticallContract()":"71ce415d","UD__getName(bytes32)":"e902af7a","UD__getNpcStats(bytes32)":"a17a6b7f","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(bytes32)":"777c2caf","UD__getOwnerAddress(bytes32)":"4f10aabc","UD__getPlayerEntityId(uint256)":"02ee03fa","UD__getPythProvider()":"e24cefd9","UD__getSpawnCounter(bytes32)":"f4e1633b","UD__getStarterItems(uint8)":"b8bfeca1","UD__getStats(bytes32)":"14b13b0e","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isAtPosition(bytes32,uint16,uint16)":"f48a3972","UD__isEquipped(bytes32,uint256)":"7273e39a","UD__isItemOwner(uint256,address)":"b3634118","UD__isParticipant(address,bytes32)":"7868d715","UD__isParticipant(address,bytes32[])":"18853912","UD__isValidCharacterId(bytes32)":"fa1becc4","UD__isValidMob(bytes32)":"bace814a","UD__isValidOwner(bytes32,address)":"43def638","UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)":"c6d5525b","UD__issueStarterItems(bytes32)":"f9d175ed","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(bytes32,uint16,uint16)":"d1138fa1","UD__rollStats(bytes32,bytes32,uint8)":"18f14781","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(bytes32)":"7e29a6f6","UD__spawnMob(uint256,uint16,uint16)":"15bc4248","UD__unequipItem(bytes32,uint256)":"7a190324","UD__updateTokenUri(bytes32,string)":"ecd73f84","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"name\":\"UD__assignActionToCharacter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD__calculateGoldDrop\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dropAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dropChance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"dropChances\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UD__dropGold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__dropItem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"name\":\"UD__equipAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getLootManagerSystem\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_lootManager\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getMulticallContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_multicall\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"UD__isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD___calculateMagicAttack"},{"inputs":[{"internalType":"struct PhysicalAttackStats","name":"attackStats","type":"tuple","components":[{"internalType":"int256","name":"bonusDamage","type":"int256"},{"internalType":"int256","name":"armorPenetration","type":"int256"},{"internalType":"int256","name":"attackModifierBonus","type":"int256"},{"internalType":"int256","name":"critChanceBonus","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"}]},{"internalType":"bytes32","name":"attackerId","type":"bytes32"},{"internalType":"bytes32","name":"defenderId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD___calculatePhysicalAttack","outputs":[{"internalType":"int256","name":"damage","type":"int256"},{"internalType":"bool","name":"hit","type":"bool"},{"internalType":"bool","name":"crit","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__applyEquipmentBonuses","outputs":[{"internalType":"struct AdjustedCombatStats","name":"modifiedStats","type":"tuple","components":[{"internalType":"uint256","name":"adjustedStrength","type":"uint256"},{"internalType":"uint256","name":"adjustedAgility","type":"uint256"},{"internalType":"uint256","name":"adjustedIntelligence","type":"uint256"},{"internalType":"uint256","name":"adjustedArmor","type":"uint256"},{"internalType":"uint256","name":"adjustedMaxHp","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"class","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__assignActionToCharacter"},{"inputs":[{"internalType":"uint256","name":"mobLevel","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__calculateGoldDrop","outputs":[{"internalType":"uint256","name":"dropAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"canUse","type":"bool"}]},{"inputs":[{"internalType":"enum ActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"actionStats","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"UD__createAction","outputs":[{"internalType":"bytes32","name":"actionId","type":"bytes32"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"dropChance","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"uint256[]","name":"dropChances","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropGold"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItem"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes32[]","name":"characterIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItems"},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"UD__endTurn"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipAction"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"UD__executeCombat"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getArmorStats","outputs":[{"internalType":"struct ArmorStats","name":"_ArmorStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint256","name":"armorModifier","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCurrentItemsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getEncounter","outputs":[{"internalType":"struct CombatEncounterData","name":"_encounterData","type":"tuple","components":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"currentTurn","type":"uint256"},{"internalType":"uint256","name":"maxTurns","type":"uint256"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getLootManagerSystem","outputs":[{"internalType":"address","name":"_lootManager","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobPosition","outputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getMulticallContract","outputs":[{"internalType":"address","name":"_multicall","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getSpawnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"view","type":"function","name":"UD__getStarterItems","outputs":[{"internalType":"struct StarterItemsData","name":"data","type":"tuple","components":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"maxDamage","type":"uint256"},{"internalType":"uint256","name":"minDamage","type":"uint256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isItemOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"participants","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidMob","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isValidOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isValidPvE","outputs":[{"internalType":"bool","name":"_isValidPvE","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawnMob","outputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__updateTokenUri"},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"}},"version":1},"id":206} \ No newline at end of file +{"abi":[{"type":"function","name":"UD___calculateMagicAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD___calculatePhysicalAttack","inputs":[{"name":"attackStats","type":"tuple","internalType":"struct PhysicalAttackStats","components":[{"name":"bonusDamage","type":"int256","internalType":"int256"},{"name":"armorPenetration","type":"int256","internalType":"int256"},{"name":"attackModifierBonus","type":"int256","internalType":"int256"},{"name":"critChanceBonus","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"}]},{"name":"attackerId","type":"bytes32","internalType":"bytes32"},{"name":"defenderId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"damage","type":"int256","internalType":"int256"},{"name":"hit","type":"bool","internalType":"bool"},{"name":"crit","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__applyEquipmentBonuses","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"modifiedStats","type":"tuple","internalType":"struct AdjustedCombatStats","components":[{"name":"adjustedStrength","type":"uint256","internalType":"uint256"},{"name":"adjustedAgility","type":"uint256","internalType":"uint256"},{"name":"adjustedIntelligence","type":"uint256","internalType":"uint256"},{"name":"adjustedArmor","type":"uint256","internalType":"uint256"},{"name":"adjustedMaxHp","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__assignActionToCharacter","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__calculateGoldDrop","inputs":[{"name":"mobLevel","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dropAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__calculateItemDrop","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canUse","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createAction","inputs":[{"name":"actionType","type":"uint8","internalType":"enum ActionType"},{"name":"actionStats","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"dropChance","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"dropChances","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropGold","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItem","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItems","inputs":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"characterIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__endTurn","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipAction","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__executeCombat","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getArmorStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_ArmorStats","type":"tuple","internalType":"struct ArmorStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"armorModifier","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentItemsCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEncounter","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_encounterData","type":"tuple","internalType":"struct CombatEncounterData","components":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"},{"name":"currentTurn","type":"uint256","internalType":"uint256"},{"name":"maxTurns","type":"uint256","internalType":"uint256"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getLootManagerSystem","inputs":[],"outputs":[{"name":"_lootManager","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMobId","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMobPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMulticallContract","inputs":[],"outputs":[{"name":"_multicall","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"UD__getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getSpawnCounter","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct StarterItemsData","components":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"maxDamage","type":"uint256","internalType":"uint256"},{"name":"minDamage","type":"uint256","internalType":"uint256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isItemOwner","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"participants","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidPvE","inputs":[{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isValidPvE","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawnMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD___calculateMagicAttack()":"e0cac377","UD___calculatePhysicalAttack((int256,int256,int256,int256,uint8[]),bytes32,bytes32,uint256,uint256)":"bf81ff5d","UD__applyEquipmentBonuses(bytes32)":"54f1f2db","UD__assignActionToCharacter(bytes32,bytes32)":"854cd561","UD__calculateGoldDrop(uint256,uint256)":"c3505171","UD__calculateItemDrop(uint256,uint256)":"2ef4cfcb","UD__checkRequirements(bytes32,uint256)":"bf4dbebc","UD__createAction(uint8,bytes)":"c3344bd2","UD__createItem(uint8,uint256,uint256,bytes,string)":"c2647a81","UD__createItems(uint8[],uint256[],uint256[],bytes[],string[])":"8a2d4e05","UD__createMatch(uint8,bytes32[],bytes32[])":"3e602b01","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__dropGold(bytes32,uint256)":"fda0ce50","UD__dropItem(uint256,uint256,bytes32)":"88c571e1","UD__dropItems(uint256[],uint256[],bytes32[])":"e45cde14","UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"1f357129","UD__enterGame(bytes32)":"b968fa3a","UD__equipAction(bytes32,bytes32)":"3d37a73e","UD__equipItems(bytes32,uint256[])":"2d9ac2be","UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"a0ba1f1e","UD__getArmorStats(uint256)":"e75aa93b","UD__getCharacterToken()":"49d8cf02","UD__getCharacterTokenId(bytes32)":"d97302d0","UD__getClass(bytes32)":"0ae6f9ab","UD__getCurrentAvailableLevel(uint256)":"d453e623","UD__getCurrentItemsCounter()":"4652f280","UD__getEncounter(bytes32)":"55faf03a","UD__getEntitiesAtPosition(uint16,uint16)":"d0f8a4f5","UD__getEntropy()":"b5c691c7","UD__getExperience(bytes32)":"a8b79e60","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getLootManagerSystem()":"f2cb96f2","UD__getMob(bytes32)":"5ac36570","UD__getMob(uint256)":"622834d0","UD__getMobId(bytes32)":"53d64640","UD__getMobPosition(bytes32)":"8b3f8277","UD__getMonsterStats(bytes32)":"e6c22e06","UD__getMonsterStats(uint256)":"91b22373","UD__getMulticallContract()":"71ce415d","UD__getName(bytes32)":"e902af7a","UD__getNpcStats(bytes32)":"a17a6b7f","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(bytes32)":"777c2caf","UD__getOwnerAddress(bytes32)":"4f10aabc","UD__getPlayerEntityId(uint256)":"02ee03fa","UD__getPythProvider()":"e24cefd9","UD__getSpawnCounter(bytes32)":"f4e1633b","UD__getStarterItems(uint8)":"b8bfeca1","UD__getStats(bytes32)":"14b13b0e","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isAtPosition(bytes32,uint16,uint16)":"f48a3972","UD__isEquipped(bytes32,uint256)":"7273e39a","UD__isItemOwner(uint256,address)":"b3634118","UD__isParticipant(address,bytes32)":"7868d715","UD__isParticipant(address,bytes32[])":"18853912","UD__isValidCharacterId(bytes32)":"fa1becc4","UD__isValidMob(bytes32)":"bace814a","UD__isValidOwner(bytes32,address)":"43def638","UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)":"c6d5525b","UD__issueStarterItems(bytes32)":"f9d175ed","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(bytes32,uint16,uint16)":"d1138fa1","UD__rollStats(bytes32,bytes32,uint8)":"18f14781","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(bytes32)":"7e29a6f6","UD__spawnMob(uint256,uint16,uint16)":"15bc4248","UD__unequipItem(bytes32,uint256)":"7a190324","UD__updateTokenUri(bytes32,string)":"ecd73f84","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"name\":\"UD__assignActionToCharacter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD__calculateGoldDrop\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dropAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__calculateItemDrop\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dropChance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"dropChances\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UD__dropGold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__dropItem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"name\":\"UD__equipAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getLootManagerSystem\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_lootManager\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getMulticallContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_multicall\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"UD__isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x943ef4b0829ceb23d0097941f8c24a67f038025a5f72a67ef6340e138388047d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767a0ed4acd401dbb6cc6a0ebab193757b58aec6d27830d87e88ce806339dc25\",\"dweb:/ipfs/QmRb7c9tQkcV2G3UwhcS89G7GcDYbtVzF4A1afpZsdUD55\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD___calculateMagicAttack"},{"inputs":[{"internalType":"struct PhysicalAttackStats","name":"attackStats","type":"tuple","components":[{"internalType":"int256","name":"bonusDamage","type":"int256"},{"internalType":"int256","name":"armorPenetration","type":"int256"},{"internalType":"int256","name":"attackModifierBonus","type":"int256"},{"internalType":"int256","name":"critChanceBonus","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"}]},{"internalType":"bytes32","name":"attackerId","type":"bytes32"},{"internalType":"bytes32","name":"defenderId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD___calculatePhysicalAttack","outputs":[{"internalType":"int256","name":"damage","type":"int256"},{"internalType":"bool","name":"hit","type":"bool"},{"internalType":"bool","name":"crit","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__applyEquipmentBonuses","outputs":[{"internalType":"struct AdjustedCombatStats","name":"modifiedStats","type":"tuple","components":[{"internalType":"uint256","name":"adjustedStrength","type":"uint256"},{"internalType":"uint256","name":"adjustedAgility","type":"uint256"},{"internalType":"uint256","name":"adjustedIntelligence","type":"uint256"},{"internalType":"uint256","name":"adjustedArmor","type":"uint256"},{"internalType":"uint256","name":"adjustedMaxHp","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"class","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__assignActionToCharacter"},{"inputs":[{"internalType":"uint256","name":"mobLevel","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__calculateGoldDrop","outputs":[{"internalType":"uint256","name":"dropAmount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__calculateItemDrop","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"canUse","type":"bool"}]},{"inputs":[{"internalType":"enum ActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"actionStats","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"UD__createAction","outputs":[{"internalType":"bytes32","name":"actionId","type":"bytes32"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"dropChance","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"uint256[]","name":"dropChances","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropGold"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItem"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes32[]","name":"characterIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItems"},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"UD__endTurn"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipAction"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"UD__executeCombat"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getArmorStats","outputs":[{"internalType":"struct ArmorStats","name":"_ArmorStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint256","name":"armorModifier","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCurrentItemsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getEncounter","outputs":[{"internalType":"struct CombatEncounterData","name":"_encounterData","type":"tuple","components":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"currentTurn","type":"uint256"},{"internalType":"uint256","name":"maxTurns","type":"uint256"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getLootManagerSystem","outputs":[{"internalType":"address","name":"_lootManager","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobPosition","outputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getMulticallContract","outputs":[{"internalType":"address","name":"_multicall","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getSpawnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"view","type":"function","name":"UD__getStarterItems","outputs":[{"internalType":"struct StarterItemsData","name":"data","type":"tuple","components":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"maxDamage","type":"uint256"},{"internalType":"uint256","name":"minDamage","type":"uint256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isItemOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"participants","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidMob","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isValidOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isValidPvE","outputs":[{"internalType":"bool","name":"_isValidPvE","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawnMob","outputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__updateTokenUri"},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x943ef4b0829ceb23d0097941f8c24a67f038025a5f72a67ef6340e138388047d","urls":["bzz-raw://767a0ed4acd401dbb6cc6a0ebab193757b58aec6d27830d87e88ce806339dc25","dweb:/ipfs/QmRb7c9tQkcV2G3UwhcS89G7GcDYbtVzF4A1afpZsdUD55"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"}},"version":1},"id":206} \ No newline at end of file diff --git a/packages/contracts/out/MapSystem.sol/MapSystem.json b/packages/contracts/out/MapSystem.sol/MapSystem.json index 03d7cb095..a84137193 100644 --- a/packages/contracts/out/MapSystem.sol/MapSystem.json +++ b/packages/contracts/out/MapSystem.sol/MapSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220053cba1e3ac40a56108edce34eefa1531cb77e974b1eb3bcf098a3497d365a8e64736f6c63430008180033","sourceMap":"412:4148:217:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220053cba1e3ac40a56108edce34eefa1531cb77e974b1eb3bcf098a3497d365a8e64736f6c63430008180033","sourceMap":"412:4148:217:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:230;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:230;;;689:74;;677:2;662:18;1262:113:123;543:226:230;1755:239:217;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:230;;1401:2;1386:18;1616:110:123;1267:177:230;1580:169:217;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:217:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:217:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:217;;1279:70;;;;-1:-1:-1;;;1279:70:217;;2807:2:230;1279:70:217;;;2789:21:230;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:217;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:217;;3212:2:230;1360:67:217;;;3194:21:230;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:217;3010:349:230;1360:67:217;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:217;;605:69;;;;-1:-1:-1;;;605:69:217;;3566:2:230;605:69:217;;;3548:21:230;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:217;3364:399:230;605:69:217;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:217;;3970:2:230;685:62:217;;;3952:21:230;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:217;3768:345:230;685:62:217;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:217;;4320:2:230;885:37:217;;;4302:21:230;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:217;4118:339:230;885:37:217;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:217;;4664:2:230;932:38:217;;;4646:21:230;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:217;4462:339:230;932:38:217;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:217;;5008:2:230;980:91:217;;;4990:21:230;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:217;4806:354:230;980:91:217;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:191:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:191;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:182:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:182;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:182:o;4071:290:179:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;2592:291:193:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:193;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:193:o;5796:354:191:-;7947:22;;;16149:3:230;16145:16;;;16054:66;16141:25;;;7947:22:191;;;;16129:38:230;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:191;;;;;;;;;6023:1;16238:11:230;;;6009:16:191;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:191;;-1:-1:-1;;6023:1:191;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:191;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:193:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:193;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:230;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:193;;;;-1:-1:-1;;4107:27:193;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:182:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:182;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;9759:28:182;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:185:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:217:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:217;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:217:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:217;;7009:2:230;4393:63:217;;;6991:21:230;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:217;6807:355:230;4393:63:217;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:217;;7369:2:230;2296:80:217;;;7351:21:230;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:217;7167:403:230;2296:80:217;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:230;;1401:2;1386:18;;1267:177;2515:42:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:217;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:230;2594:9:217;;:20;;1386:18:230;;2594:38:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:217;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:230;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:217;;;;-1:-1:-1;;2754:148:217;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:217;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:191:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:191;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:191;-1:-1:-1;;;;7036:160:191:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:182:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:182;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;12402:28:182;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:182;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:217:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:188:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:188;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:230;18911:18;;3713:52:107;18794:248:230;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:217:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:217;;3609:106;-1:-1:-1;3609:106:217:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:230;25536:15;;;45340:92:45;;;25518:34:230;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:230;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:230;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:230;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:230;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:230;;51494:30:45;27964:279:230;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:230;;;1386:18;;7664:67:24;1267:177:230;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:230;30142:79;;2092:30:124;;;30130:92:230;2092:30:124;;30238:12:230;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:193;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:193;6914:97;14:332:230;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:230;;1710:439;-1:-1:-1;;;;;1710:439:230:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:230;;2420:180;-1:-1:-1;2420:180:230:o;5165:184::-;-1:-1:-1;;;5214:1:230;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:230;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:230;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:230;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:230;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:230;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:230;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:230;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:230;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:230;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:230;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:230:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:230;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:230:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:230:o;10716:184::-;-1:-1:-1;;;10765:1:230;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:230:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:230;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:230;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:230;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:230;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:230:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:230;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:230:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:230;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:230:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:230;;15702:184;-1:-1:-1;15702:184:230:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:230:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:230:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:230;;21043:640;-1:-1:-1;;;;;;;21043:640:230:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:230:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:230:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:230:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:230;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:230:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:230:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09","urls":["bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947","dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":217} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea26469706673582212207fb2ddf722e4103a995927e5fdab366bcfd00c07a5c10f002966d1c24763d80664736f6c63430008180033","sourceMap":"412:4148:217:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea26469706673582212207fb2ddf722e4103a995927e5fdab366bcfd00c07a5c10f002966d1c24763d80664736f6c63430008180033","sourceMap":"412:4148:217:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:229;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:229;;;689:74;;677:2;662:18;1262:113:123;543:226:229;1755:239:217;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:229;;1401:2;1386:18;1616:110:123;1267:177:229;1580:169:217;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:217:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:217:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:217;;1279:70;;;;-1:-1:-1;;;1279:70:217;;2807:2:229;1279:70:217;;;2789:21:229;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:217;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:217;;3212:2:229;1360:67:217;;;3194:21:229;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:217;3010:349:229;1360:67:217;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:217;;605:69;;;;-1:-1:-1;;;605:69:217;;3566:2:229;605:69:217;;;3548:21:229;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:217;3364:399:229;605:69:217;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:217;;3970:2:229;685:62:217;;;3952:21:229;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:217;3768:345:229;685:62:217;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:217;;4320:2:229;885:37:217;;;4302:21:229;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:217;4118:339:229;885:37:217;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:217;;4664:2:229;932:38:217;;;4646:21:229;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:217;4462:339:229;932:38:217;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:217;;5008:2:229;980:91:217;;;4990:21:229;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:217;4806:354:229;980:91:217;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:191:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:191;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:182:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:182;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:182:o;4071:290:179:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;2592:291:193:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:193;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:193:o;5796:354:191:-;7947:22;;;16149:3:229;16145:16;;;16054:66;16141:25;;;7947:22:191;;;;16129:38:229;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:191;;;;;;;;;6023:1;16238:11:229;;;6009:16:191;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:191;;-1:-1:-1;;6023:1:191;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:191;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:193:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:193;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:229;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:193;;;;-1:-1:-1;;4107:27:193;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:182:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:182;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;9759:28:182;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:185:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:217:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:217;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:217:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:217;;7009:2:229;4393:63:217;;;6991:21:229;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:217;6807:355:229;4393:63:217;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:217;;7369:2:229;2296:80:217;;;7351:21:229;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:217;7167:403:229;2296:80:217;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:229;;1401:2;1386:18;;1267:177;2515:42:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:217;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:229;2594:9:217;;:20;;1386:18:229;;2594:38:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:217;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:229;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:217;;;;-1:-1:-1;;2754:148:217;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:217;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:191:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:191;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:191;-1:-1:-1;;;;7036:160:191:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:182:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:182;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;12402:28:182;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:182;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:217:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:188:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:188;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:229;18911:18;;3713:52:107;18794:248:229;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:217:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:217;;3609:106;-1:-1:-1;3609:106:217:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:229;25536:15;;;45340:92:45;;;25518:34:229;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:229;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:229;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:229;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:229;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:229;;51494:30:45;27964:279:229;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:229;;;1386:18;;7664:67:24;1267:177:229;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:229;30142:79;;2092:30:124;;;30130:92:229;2092:30:124;;30238:12:229;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:193;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:193;6914:97;14:332:229;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:229;;1710:439;-1:-1:-1;;;;;1710:439:229:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:229;;2420:180;-1:-1:-1;2420:180:229:o;5165:184::-;-1:-1:-1;;;5214:1:229;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:229;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:229;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:229;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:229;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:229;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:229;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:229;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:229;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:229;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:229;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:229:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:229;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:229:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:229:o;10716:184::-;-1:-1:-1;;;10765:1:229;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:229:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:229;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:229;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:229;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:229;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:229:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:229;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:229:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:229;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:229:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:229;;15702:184;-1:-1:-1;15702:184:229:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:229:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:229:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:229;;21043:640;-1:-1:-1;;;;;;;21043:640:229:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:229:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:229:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:229:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:229;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:229:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:229:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x943ef4b0829ceb23d0097941f8c24a67f038025a5f72a67ef6340e138388047d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767a0ed4acd401dbb6cc6a0ebab193757b58aec6d27830d87e88ce806339dc25\",\"dweb:/ipfs/QmRb7c9tQkcV2G3UwhcS89G7GcDYbtVzF4A1afpZsdUD55\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58","urls":["bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9","dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x943ef4b0829ceb23d0097941f8c24a67f038025a5f72a67ef6340e138388047d","urls":["bzz-raw://767a0ed4acd401dbb6cc6a0ebab193757b58aec6d27830d87e88ce806339dc25","dweb:/ipfs/QmRb7c9tQkcV2G3UwhcS89G7GcDYbtVzF4A1afpZsdUD55"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f","urls":["bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56","dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":217} \ No newline at end of file diff --git a/packages/contracts/src/codegen/common.sol b/packages/contracts/src/codegen/common.sol index 5ccf0da3d..f7e7e32f9 100644 --- a/packages/contracts/src/codegen/common.sol +++ b/packages/contracts/src/codegen/common.sol @@ -3,55 +3,55 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ enum Classes { - Warrior, - Rogue, - Mage + Warrior, + Rogue, + Mage } enum RngRequestType { - CharacterStats, - Combat, - WorldGeneration + CharacterStats, + Combat, + WorldGeneration } enum ItemType { - Weapon, - Armor, - Spell, - Potion, - Material, - QuestItem + Weapon, + Armor, + Spell, + Potion, + Material, + QuestItem } enum MobType { - Monster, - NPC + Monster, + NPC } enum Alignment { - Loyalist, - Neutral, - Rebel, - Aggro + Loyalist, + Neutral, + Rebel, + Aggro } enum EncounterType { - PvP, - PvE + PvP, + PvE } enum ActionType { - Temporary, - PhysicalAttack, - MagicAttack, - StatusEffect + Temporary, + PhysicalAttack, + MagicAttack, + StatusEffect } enum StatusEffects { - ToHitModifier, - DoT, - HitPointMod, - ArmorMod, - WeaponMod, - Stun + ToHitModifier, + DoT, + HitPointMod, + ArmorMod, + WeaponMod, + Stun } diff --git a/packages/contracts/src/codegen/index.sol b/packages/contracts/src/codegen/index.sol index 5e723a45c..9aac60c5b 100644 --- a/packages/contracts/src/codegen/index.sol +++ b/packages/contracts/src/codegen/index.sol @@ -3,24 +3,24 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import {Admin} from "./tables/Admin.sol"; -import {Characters, CharactersData} from "./tables/Characters.sol"; -import {Stats, StatsData} from "./tables/Stats.sol"; -import {MapConfig} from "./tables/MapConfig.sol"; -import {Spawned} from "./tables/Spawned.sol"; -import {Mobs, MobsData} from "./tables/Mobs.sol"; -import {MobsByLevel} from "./tables/MobsByLevel.sol"; -import {Levels} from "./tables/Levels.sol"; -import {CharacterEquipment, CharacterEquipmentData} from "./tables/CharacterEquipment.sol"; -import {Counters} from "./tables/Counters.sol"; -import {Items, ItemsData} from "./tables/Items.sol"; -import {Actions, ActionsData} from "./tables/Actions.sol"; -import {StarterItems, StarterItemsData} from "./tables/StarterItems.sol"; -import {Name} from "./tables/Name.sol"; -import {NameExists} from "./tables/NameExists.sol"; -import {CombatEncounter, CombatEncounterData} from "./tables/CombatEncounter.sol"; -import {MatchEntity, MatchEntityData} from "./tables/MatchEntity.sol"; -import {RandomNumbers, RandomNumbersData} from "./tables/RandomNumbers.sol"; -import {Position} from "./tables/Position.sol"; -import {EntitiesAtPosition} from "./tables/EntitiesAtPosition.sol"; -import {UltimateDominionConfig, UltimateDominionConfigData} from "./tables/UltimateDominionConfig.sol"; +import { Admin } from "./tables/Admin.sol"; +import { Characters, CharactersData } from "./tables/Characters.sol"; +import { Stats, StatsData } from "./tables/Stats.sol"; +import { MapConfig } from "./tables/MapConfig.sol"; +import { Spawned } from "./tables/Spawned.sol"; +import { Mobs, MobsData } from "./tables/Mobs.sol"; +import { MobsByLevel } from "./tables/MobsByLevel.sol"; +import { Levels } from "./tables/Levels.sol"; +import { CharacterEquipment, CharacterEquipmentData } from "./tables/CharacterEquipment.sol"; +import { Counters } from "./tables/Counters.sol"; +import { Items, ItemsData } from "./tables/Items.sol"; +import { Actions, ActionsData } from "./tables/Actions.sol"; +import { StarterItems, StarterItemsData } from "./tables/StarterItems.sol"; +import { Name } from "./tables/Name.sol"; +import { NameExists } from "./tables/NameExists.sol"; +import { CombatEncounter, CombatEncounterData } from "./tables/CombatEncounter.sol"; +import { MatchEntity, MatchEntityData } from "./tables/MatchEntity.sol"; +import { RandomNumbers, RandomNumbersData } from "./tables/RandomNumbers.sol"; +import { Position } from "./tables/Position.sol"; +import { EntitiesAtPosition } from "./tables/EntitiesAtPosition.sol"; +import { UltimateDominionConfig, UltimateDominionConfigData } from "./tables/UltimateDominionConfig.sol"; diff --git a/packages/contracts/src/codegen/tables/Actions.sol b/packages/contracts/src/codegen/tables/Actions.sol index ff15ef5df..bb1d02af3 100644 --- a/packages/contracts/src/codegen/tables/Actions.sol +++ b/packages/contracts/src/codegen/tables/Actions.sol @@ -4,471 +4,475 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import {ActionType} from "./../common.sol"; +import { ActionType } from "./../common.sol"; struct ActionsData { - ActionType actionType; - bytes actionStats; + ActionType actionType; + bytes actionStats; } library Actions { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Actions", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000416374696f6e73000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010101000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint8, bytes) - Schema constant _valueSchema = Schema.wrap(0x0001010100c40000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "actionId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "actionType"; - fieldNames[1] = "actionStats"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get actionType. - */ - function getActionType(bytes32 actionId) internal view returns (ActionType actionType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return ActionType(uint8(bytes1(_blob))); - } - - /** - * @notice Get actionType. - */ - function _getActionType(bytes32 actionId) internal view returns (ActionType actionType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return ActionType(uint8(bytes1(_blob))); - } - - /** - * @notice Set actionType. - */ - function setActionType(bytes32 actionId, ActionType actionType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(actionType)), _fieldLayout); - } - - /** - * @notice Set actionType. - */ - function _setActionType(bytes32 actionId, ActionType actionType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(actionType)), _fieldLayout); - } - - /** - * @notice Get actionStats. - */ - function getActionStats(bytes32 actionId) internal view returns (bytes memory actionStats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Get actionStats. - */ - function _getActionStats(bytes32 actionId) internal view returns (bytes memory actionStats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Set actionStats. - */ - function setActionStats(bytes32 actionId, bytes memory actionStats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((actionStats))); - } - - /** - * @notice Set actionStats. - */ - function _setActionStats(bytes32 actionId, bytes memory actionStats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((actionStats))); - } - - /** - * @notice Get the length of actionStats. - */ - function lengthActionStats(bytes32 actionId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of actionStats. - */ - function _lengthActionStats(bytes32 actionId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of actionStats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemActionStats(bytes32 actionId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Get an item of actionStats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemActionStats(bytes32 actionId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Push a slice to actionStats. - */ - function pushActionStats(bytes32 actionId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to actionStats. - */ - function _pushActionStats(bytes32 actionId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Pop a slice from actionStats. - */ - function popActionStats(bytes32 actionId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from actionStats. - */ - function _popActionStats(bytes32 actionId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Update a slice of actionStats at `_index`. - */ - function updateActionStats(bytes32 actionId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of actionStats at `_index`. - */ - function _updateActionStats(bytes32 actionId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(bytes32 actionId) internal view returns (ActionsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 actionId) internal view returns (ActionsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(bytes32 actionId, ActionType actionType, bytes memory actionStats) internal { - bytes memory _staticData = encodeStatic(actionType); - - EncodedLengths _encodedLengths = encodeLengths(actionStats); - bytes memory _dynamicData = encodeDynamic(actionStats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(bytes32 actionId, ActionType actionType, bytes memory actionStats) internal { - bytes memory _staticData = encodeStatic(actionType); - - EncodedLengths _encodedLengths = encodeLengths(actionStats); - bytes memory _dynamicData = encodeDynamic(actionStats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 actionId, ActionsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.actionType); - - EncodedLengths _encodedLengths = encodeLengths(_table.actionStats); - bytes memory _dynamicData = encodeDynamic(_table.actionStats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 actionId, ActionsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.actionType); - - EncodedLengths _encodedLengths = encodeLengths(_table.actionStats); - bytes memory _dynamicData = encodeDynamic(_table.actionStats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (ActionType actionType) { - actionType = ActionType(uint8(Bytes.getBytes1(_blob, 0))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) - internal - pure - returns (bytes memory actionStats) - { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - actionStats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) - internal - pure - returns (ActionsData memory _table) - { - (_table.actionType) = decodeStatic(_staticData); - - (_table.actionStats) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 actionId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 actionId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(ActionType actionType) internal pure returns (bytes memory) { - return abi.encodePacked(actionType); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(bytes memory actionStats) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(bytes(actionStats).length); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes memory actionStats) internal pure returns (bytes memory) { - return abi.encodePacked(bytes((actionStats))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(ActionType actionType, bytes memory actionStats) - internal - pure - returns (bytes memory, EncodedLengths, bytes memory) - { - bytes memory _staticData = encodeStatic(actionType); - - EncodedLengths _encodedLengths = encodeLengths(actionStats); - bytes memory _dynamicData = encodeDynamic(actionStats); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 actionId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = actionId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Actions", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000416374696f6e73000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010101000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint8, bytes) + Schema constant _valueSchema = Schema.wrap(0x0001010100c40000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "actionId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "actionType"; + fieldNames[1] = "actionStats"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get actionType. + */ + function getActionType(bytes32 actionId) internal view returns (ActionType actionType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return ActionType(uint8(bytes1(_blob))); + } + + /** + * @notice Get actionType. + */ + function _getActionType(bytes32 actionId) internal view returns (ActionType actionType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return ActionType(uint8(bytes1(_blob))); + } + + /** + * @notice Set actionType. + */ + function setActionType(bytes32 actionId, ActionType actionType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(actionType)), _fieldLayout); + } + + /** + * @notice Set actionType. + */ + function _setActionType(bytes32 actionId, ActionType actionType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(actionType)), _fieldLayout); + } + + /** + * @notice Get actionStats. + */ + function getActionStats(bytes32 actionId) internal view returns (bytes memory actionStats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Get actionStats. + */ + function _getActionStats(bytes32 actionId) internal view returns (bytes memory actionStats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Set actionStats. + */ + function setActionStats(bytes32 actionId, bytes memory actionStats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((actionStats))); + } + + /** + * @notice Set actionStats. + */ + function _setActionStats(bytes32 actionId, bytes memory actionStats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((actionStats))); + } + + /** + * @notice Get the length of actionStats. + */ + function lengthActionStats(bytes32 actionId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of actionStats. + */ + function _lengthActionStats(bytes32 actionId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of actionStats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemActionStats(bytes32 actionId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Get an item of actionStats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemActionStats(bytes32 actionId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Push a slice to actionStats. + */ + function pushActionStats(bytes32 actionId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to actionStats. + */ + function _pushActionStats(bytes32 actionId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Pop a slice from actionStats. + */ + function popActionStats(bytes32 actionId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from actionStats. + */ + function _popActionStats(bytes32 actionId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Update a slice of actionStats at `_index`. + */ + function updateActionStats(bytes32 actionId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of actionStats at `_index`. + */ + function _updateActionStats(bytes32 actionId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(bytes32 actionId) internal view returns (ActionsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 actionId) internal view returns (ActionsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(bytes32 actionId, ActionType actionType, bytes memory actionStats) internal { + bytes memory _staticData = encodeStatic(actionType); + + EncodedLengths _encodedLengths = encodeLengths(actionStats); + bytes memory _dynamicData = encodeDynamic(actionStats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(bytes32 actionId, ActionType actionType, bytes memory actionStats) internal { + bytes memory _staticData = encodeStatic(actionType); + + EncodedLengths _encodedLengths = encodeLengths(actionStats); + bytes memory _dynamicData = encodeDynamic(actionStats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 actionId, ActionsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.actionType); + + EncodedLengths _encodedLengths = encodeLengths(_table.actionStats); + bytes memory _dynamicData = encodeDynamic(_table.actionStats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 actionId, ActionsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.actionType); + + EncodedLengths _encodedLengths = encodeLengths(_table.actionStats); + bytes memory _dynamicData = encodeDynamic(_table.actionStats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (ActionType actionType) { + actionType = ActionType(uint8(Bytes.getBytes1(_blob, 0))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic( + EncodedLengths _encodedLengths, + bytes memory _blob + ) internal pure returns (bytes memory actionStats) { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + actionStats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode( + bytes memory _staticData, + EncodedLengths _encodedLengths, + bytes memory _dynamicData + ) internal pure returns (ActionsData memory _table) { + (_table.actionType) = decodeStatic(_staticData); + + (_table.actionStats) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 actionId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 actionId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(ActionType actionType) internal pure returns (bytes memory) { + return abi.encodePacked(actionType); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(bytes memory actionStats) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(bytes(actionStats).length); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes memory actionStats) internal pure returns (bytes memory) { + return abi.encodePacked(bytes((actionStats))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + ActionType actionType, + bytes memory actionStats + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(actionType); + + EncodedLengths _encodedLengths = encodeLengths(actionStats); + bytes memory _dynamicData = encodeDynamic(actionStats); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 actionId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = actionId; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Admin.sol b/packages/contracts/src/codegen/tables/Admin.sol index 4182226a2..7c5a2e32a 100644 --- a/packages/contracts/src/codegen/tables/Admin.sol +++ b/packages/contracts/src/codegen/tables/Admin.sol @@ -4,198 +4,198 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; library Admin { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Admin", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000041646d696e0000000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bool) - Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "id"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "value"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get value. - */ - function getValue(bytes32 id) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function _getValue(bytes32 id) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function get(bytes32 id) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function _get(bytes32 id) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Set value. - */ - function setValue(bytes32 id, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function _setValue(bytes32 id, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function set(bytes32 id, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function _set(bytes32 id, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(bool value) internal pure returns (bytes memory) { - return abi.encodePacked(value); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(bool value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(value); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 id) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Admin", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000041646d696e0000000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bool) + Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "id"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "value"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get value. + */ + function getValue(bytes32 id) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function _getValue(bytes32 id) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function get(bytes32 id) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function _get(bytes32 id) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Set value. + */ + function setValue(bytes32 id, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function _setValue(bytes32 id, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function set(bytes32 id, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function _set(bytes32 id, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(bool value) internal pure returns (bytes memory) { + return abi.encodePacked(value); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(bool value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(value); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 id) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + return _keyTuple; + } } /** @@ -205,7 +205,7 @@ library Admin { * @return result The boolean value. */ function _toBool(uint8 value) pure returns (bool result) { - assembly { - result := value - } + assembly { + result := value + } } diff --git a/packages/contracts/src/codegen/tables/CharacterEquipment.sol b/packages/contracts/src/codegen/tables/CharacterEquipment.sol index 39acc9c9a..88a9c6c2e 100644 --- a/packages/contracts/src/codegen/tables/CharacterEquipment.sol +++ b/packages/contracts/src/codegen/tables/CharacterEquipment.sol @@ -4,1053 +4,1066 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; struct CharacterEquipmentData { - int256 strBonus; - int256 agiBonus; - int256 intBonus; - int256 hpBonus; - uint256 armor; - uint256[] equippedArmor; - uint256[] equippedWeapons; - bytes32[] equippedSpells; + int256 strBonus; + int256 agiBonus; + int256 intBonus; + int256 hpBonus; + uint256 armor; + uint256[] equippedArmor; + uint256[] equippedWeapons; + bytes32[] equippedSpells; } library CharacterEquipment { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "CharacterEquipme", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000043686172616374657245717569706d65); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x00a0050320202020200000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (int256, int256, int256, int256, uint256, uint256[], uint256[], bytes32[]) - Schema constant _valueSchema = Schema.wrap(0x00a005033f3f3f3f1f8181c10000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "characterId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](8); - fieldNames[0] = "strBonus"; - fieldNames[1] = "agiBonus"; - fieldNames[2] = "intBonus"; - fieldNames[3] = "hpBonus"; - fieldNames[4] = "armor"; - fieldNames[5] = "equippedArmor"; - fieldNames[6] = "equippedWeapons"; - fieldNames[7] = "equippedSpells"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get strBonus. - */ - function getStrBonus(bytes32 characterId) internal view returns (int256 strBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get strBonus. - */ - function _getStrBonus(bytes32 characterId) internal view returns (int256 strBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set strBonus. - */ - function setStrBonus(bytes32 characterId, int256 strBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strBonus)), _fieldLayout); - } - - /** - * @notice Set strBonus. - */ - function _setStrBonus(bytes32 characterId, int256 strBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strBonus)), _fieldLayout); - } - - /** - * @notice Get agiBonus. - */ - function getAgiBonus(bytes32 characterId) internal view returns (int256 agiBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get agiBonus. - */ - function _getAgiBonus(bytes32 characterId) internal view returns (int256 agiBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set agiBonus. - */ - function setAgiBonus(bytes32 characterId, int256 agiBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agiBonus)), _fieldLayout); - } - - /** - * @notice Set agiBonus. - */ - function _setAgiBonus(bytes32 characterId, int256 agiBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agiBonus)), _fieldLayout); - } - - /** - * @notice Get intBonus. - */ - function getIntBonus(bytes32 characterId) internal view returns (int256 intBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get intBonus. - */ - function _getIntBonus(bytes32 characterId) internal view returns (int256 intBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set intBonus. - */ - function setIntBonus(bytes32 characterId, int256 intBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((intBonus)), _fieldLayout); - } - - /** - * @notice Set intBonus. - */ - function _setIntBonus(bytes32 characterId, int256 intBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((intBonus)), _fieldLayout); - } - - /** - * @notice Get hpBonus. - */ - function getHpBonus(bytes32 characterId) internal view returns (int256 hpBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get hpBonus. - */ - function _getHpBonus(bytes32 characterId) internal view returns (int256 hpBonus) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set hpBonus. - */ - function setHpBonus(bytes32 characterId, int256 hpBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((hpBonus)), _fieldLayout); - } - - /** - * @notice Set hpBonus. - */ - function _setHpBonus(bytes32 characterId, int256 hpBonus) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((hpBonus)), _fieldLayout); - } - - /** - * @notice Get armor. - */ - function getArmor(bytes32 characterId) internal view returns (uint256 armor) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get armor. - */ - function _getArmor(bytes32 characterId) internal view returns (uint256 armor) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set armor. - */ - function setArmor(bytes32 characterId, uint256 armor) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((armor)), _fieldLayout); - } - - /** - * @notice Set armor. - */ - function _setArmor(bytes32 characterId, uint256 armor) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((armor)), _fieldLayout); - } - - /** - * @notice Get equippedArmor. - */ - function getEquippedArmor(bytes32 characterId) internal view returns (uint256[] memory equippedArmor) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get equippedArmor. - */ - function _getEquippedArmor(bytes32 characterId) internal view returns (uint256[] memory equippedArmor) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Set equippedArmor. - */ - function setEquippedArmor(bytes32 characterId, uint256[] memory equippedArmor) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((equippedArmor))); - } - - /** - * @notice Set equippedArmor. - */ - function _setEquippedArmor(bytes32 characterId, uint256[] memory equippedArmor) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((equippedArmor))); - } - - /** - * @notice Get the length of equippedArmor. - */ - function lengthEquippedArmor(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of equippedArmor. - */ - function _lengthEquippedArmor(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of equippedArmor. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemEquippedArmor(bytes32 characterId, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = - StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of equippedArmor. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemEquippedArmor(bytes32 characterId, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Push an element to equippedArmor. - */ - function pushEquippedArmor(bytes32 characterId, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to equippedArmor. - */ - function _pushEquippedArmor(bytes32 characterId, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from equippedArmor. - */ - function popEquippedArmor(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from equippedArmor. - */ - function _popEquippedArmor(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Update an element of equippedArmor at `_index`. - */ - function updateEquippedArmor(bytes32 characterId, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData( - _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded - ); - } - } - - /** - * @notice Update an element of equippedArmor at `_index`. - */ - function _updateEquippedArmor(bytes32 characterId, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get equippedWeapons. - */ - function getEquippedWeapons(bytes32 characterId) internal view returns (uint256[] memory equippedWeapons) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get equippedWeapons. - */ - function _getEquippedWeapons(bytes32 characterId) internal view returns (uint256[] memory equippedWeapons) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Set equippedWeapons. - */ - function setEquippedWeapons(bytes32 characterId, uint256[] memory equippedWeapons) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((equippedWeapons))); - } - - /** - * @notice Set equippedWeapons. - */ - function _setEquippedWeapons(bytes32 characterId, uint256[] memory equippedWeapons) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((equippedWeapons))); - } - - /** - * @notice Get the length of equippedWeapons. - */ - function lengthEquippedWeapons(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of equippedWeapons. - */ - function _lengthEquippedWeapons(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of equippedWeapons. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemEquippedWeapons(bytes32 characterId, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = - StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of equippedWeapons. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemEquippedWeapons(bytes32 characterId, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Push an element to equippedWeapons. - */ - function pushEquippedWeapons(bytes32 characterId, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to equippedWeapons. - */ - function _pushEquippedWeapons(bytes32 characterId, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from equippedWeapons. - */ - function popEquippedWeapons(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Pop an element from equippedWeapons. - */ - function _popEquippedWeapons(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Update an element of equippedWeapons at `_index`. - */ - function updateEquippedWeapons(bytes32 characterId, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData( - _tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded - ); - } - } - - /** - * @notice Update an element of equippedWeapons at `_index`. - */ - function _updateEquippedWeapons(bytes32 characterId, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get equippedSpells. - */ - function getEquippedSpells(bytes32 characterId) internal view returns (bytes32[] memory equippedSpells) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 2); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get equippedSpells. - */ - function _getEquippedSpells(bytes32 characterId) internal view returns (bytes32[] memory equippedSpells) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 2); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Set equippedSpells. - */ - function setEquippedSpells(bytes32 characterId, bytes32[] memory equippedSpells) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 2, EncodeArray.encode((equippedSpells))); - } - - /** - * @notice Set equippedSpells. - */ - function _setEquippedSpells(bytes32 characterId, bytes32[] memory equippedSpells) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 2, EncodeArray.encode((equippedSpells))); - } - - /** - * @notice Get the length of equippedSpells. - */ - function lengthEquippedSpells(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 2); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of equippedSpells. - */ - function _lengthEquippedSpells(bytes32 characterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 2); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of equippedSpells. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemEquippedSpells(bytes32 characterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = - StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 2, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of equippedSpells. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemEquippedSpells(bytes32 characterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 2, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Push an element to equippedSpells. - */ - function pushEquippedSpells(bytes32 characterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 2, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to equippedSpells. - */ - function _pushEquippedSpells(bytes32 characterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 2, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from equippedSpells. - */ - function popEquippedSpells(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 2, 32); - } - - /** - * @notice Pop an element from equippedSpells. - */ - function _popEquippedSpells(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 2, 32); - } - - /** - * @notice Update an element of equippedSpells at `_index`. - */ - function updateEquippedSpells(bytes32 characterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData( - _tableId, _keyTuple, 2, uint40(_index * 32), uint40(_encoded.length), _encoded - ); - } - } - - /** - * @notice Update an element of equippedSpells at `_index`. - */ - function _updateEquippedSpells(bytes32 characterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 2, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(bytes32 characterId) internal view returns (CharacterEquipmentData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 characterId) internal view returns (CharacterEquipmentData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set( - bytes32 characterId, - int256 strBonus, - int256 agiBonus, - int256 intBonus, - int256 hpBonus, - uint256 armor, - uint256[] memory equippedArmor, - uint256[] memory equippedWeapons, - bytes32[] memory equippedSpells - ) internal { - bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); - - EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); - bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set( - bytes32 characterId, - int256 strBonus, - int256 agiBonus, - int256 intBonus, - int256 hpBonus, - uint256 armor, - uint256[] memory equippedArmor, - uint256[] memory equippedWeapons, - bytes32[] memory equippedSpells - ) internal { - bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); - - EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); - bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 characterId, CharacterEquipmentData memory _table) internal { - bytes memory _staticData = - encodeStatic(_table.strBonus, _table.agiBonus, _table.intBonus, _table.hpBonus, _table.armor); - - EncodedLengths _encodedLengths = - encodeLengths(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); - bytes memory _dynamicData = encodeDynamic(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 characterId, CharacterEquipmentData memory _table) internal { - bytes memory _staticData = - encodeStatic(_table.strBonus, _table.agiBonus, _table.intBonus, _table.hpBonus, _table.armor); - - EncodedLengths _encodedLengths = - encodeLengths(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); - bytes memory _dynamicData = encodeDynamic(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) - internal - pure - returns (int256 strBonus, int256 agiBonus, int256 intBonus, int256 hpBonus, uint256 armor) - { - strBonus = (int256(uint256(Bytes.getBytes32(_blob, 0)))); - - agiBonus = (int256(uint256(Bytes.getBytes32(_blob, 32)))); - - intBonus = (int256(uint256(Bytes.getBytes32(_blob, 64)))); - - hpBonus = (int256(uint256(Bytes.getBytes32(_blob, 96)))); - - armor = (uint256(Bytes.getBytes32(_blob, 128))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) - internal - pure - returns (uint256[] memory equippedArmor, uint256[] memory equippedWeapons, bytes32[] memory equippedSpells) - { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - equippedArmor = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); - - _start = _end; - unchecked { - _end += _encodedLengths.atIndex(1); - } - equippedWeapons = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); - - _start = _end; - unchecked { - _end += _encodedLengths.atIndex(2); - } - equippedSpells = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) - internal - pure - returns (CharacterEquipmentData memory _table) - { - (_table.strBonus, _table.agiBonus, _table.intBonus, _table.hpBonus, _table.armor) = decodeStatic(_staticData); - - (_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells) = - decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(int256 strBonus, int256 agiBonus, int256 intBonus, int256 hpBonus, uint256 armor) - internal - pure - returns (bytes memory) - { - return abi.encodePacked(strBonus, agiBonus, intBonus, hpBonus, armor); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths( - uint256[] memory equippedArmor, - uint256[] memory equippedWeapons, - bytes32[] memory equippedSpells - ) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack( - equippedArmor.length * 32, equippedWeapons.length * 32, equippedSpells.length * 32 - ); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic( - uint256[] memory equippedArmor, - uint256[] memory equippedWeapons, - bytes32[] memory equippedSpells - ) internal pure returns (bytes memory) { - return abi.encodePacked( - EncodeArray.encode((equippedArmor)), - EncodeArray.encode((equippedWeapons)), - EncodeArray.encode((equippedSpells)) - ); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - int256 strBonus, - int256 agiBonus, - int256 intBonus, - int256 hpBonus, - uint256 armor, - uint256[] memory equippedArmor, - uint256[] memory equippedWeapons, - bytes32[] memory equippedSpells - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); - - EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); - bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 characterId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "CharacterEquipme", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000043686172616374657245717569706d65); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x00a0050320202020200000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (int256, int256, int256, int256, uint256, uint256[], uint256[], bytes32[]) + Schema constant _valueSchema = Schema.wrap(0x00a005033f3f3f3f1f8181c10000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "characterId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](8); + fieldNames[0] = "strBonus"; + fieldNames[1] = "agiBonus"; + fieldNames[2] = "intBonus"; + fieldNames[3] = "hpBonus"; + fieldNames[4] = "armor"; + fieldNames[5] = "equippedArmor"; + fieldNames[6] = "equippedWeapons"; + fieldNames[7] = "equippedSpells"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get strBonus. + */ + function getStrBonus(bytes32 characterId) internal view returns (int256 strBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get strBonus. + */ + function _getStrBonus(bytes32 characterId) internal view returns (int256 strBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set strBonus. + */ + function setStrBonus(bytes32 characterId, int256 strBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strBonus)), _fieldLayout); + } + + /** + * @notice Set strBonus. + */ + function _setStrBonus(bytes32 characterId, int256 strBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strBonus)), _fieldLayout); + } + + /** + * @notice Get agiBonus. + */ + function getAgiBonus(bytes32 characterId) internal view returns (int256 agiBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get agiBonus. + */ + function _getAgiBonus(bytes32 characterId) internal view returns (int256 agiBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set agiBonus. + */ + function setAgiBonus(bytes32 characterId, int256 agiBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agiBonus)), _fieldLayout); + } + + /** + * @notice Set agiBonus. + */ + function _setAgiBonus(bytes32 characterId, int256 agiBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agiBonus)), _fieldLayout); + } + + /** + * @notice Get intBonus. + */ + function getIntBonus(bytes32 characterId) internal view returns (int256 intBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get intBonus. + */ + function _getIntBonus(bytes32 characterId) internal view returns (int256 intBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set intBonus. + */ + function setIntBonus(bytes32 characterId, int256 intBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((intBonus)), _fieldLayout); + } + + /** + * @notice Set intBonus. + */ + function _setIntBonus(bytes32 characterId, int256 intBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((intBonus)), _fieldLayout); + } + + /** + * @notice Get hpBonus. + */ + function getHpBonus(bytes32 characterId) internal view returns (int256 hpBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get hpBonus. + */ + function _getHpBonus(bytes32 characterId) internal view returns (int256 hpBonus) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set hpBonus. + */ + function setHpBonus(bytes32 characterId, int256 hpBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((hpBonus)), _fieldLayout); + } + + /** + * @notice Set hpBonus. + */ + function _setHpBonus(bytes32 characterId, int256 hpBonus) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((hpBonus)), _fieldLayout); + } + + /** + * @notice Get armor. + */ + function getArmor(bytes32 characterId) internal view returns (uint256 armor) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get armor. + */ + function _getArmor(bytes32 characterId) internal view returns (uint256 armor) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set armor. + */ + function setArmor(bytes32 characterId, uint256 armor) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((armor)), _fieldLayout); + } + + /** + * @notice Set armor. + */ + function _setArmor(bytes32 characterId, uint256 armor) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((armor)), _fieldLayout); + } + + /** + * @notice Get equippedArmor. + */ + function getEquippedArmor(bytes32 characterId) internal view returns (uint256[] memory equippedArmor) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get equippedArmor. + */ + function _getEquippedArmor(bytes32 characterId) internal view returns (uint256[] memory equippedArmor) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Set equippedArmor. + */ + function setEquippedArmor(bytes32 characterId, uint256[] memory equippedArmor) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((equippedArmor))); + } + + /** + * @notice Set equippedArmor. + */ + function _setEquippedArmor(bytes32 characterId, uint256[] memory equippedArmor) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((equippedArmor))); + } + + /** + * @notice Get the length of equippedArmor. + */ + function lengthEquippedArmor(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of equippedArmor. + */ + function _lengthEquippedArmor(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of equippedArmor. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemEquippedArmor(bytes32 characterId, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of equippedArmor. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemEquippedArmor(bytes32 characterId, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Push an element to equippedArmor. + */ + function pushEquippedArmor(bytes32 characterId, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to equippedArmor. + */ + function _pushEquippedArmor(bytes32 characterId, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from equippedArmor. + */ + function popEquippedArmor(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from equippedArmor. + */ + function _popEquippedArmor(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Update an element of equippedArmor at `_index`. + */ + function updateEquippedArmor(bytes32 characterId, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of equippedArmor at `_index`. + */ + function _updateEquippedArmor(bytes32 characterId, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get equippedWeapons. + */ + function getEquippedWeapons(bytes32 characterId) internal view returns (uint256[] memory equippedWeapons) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get equippedWeapons. + */ + function _getEquippedWeapons(bytes32 characterId) internal view returns (uint256[] memory equippedWeapons) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Set equippedWeapons. + */ + function setEquippedWeapons(bytes32 characterId, uint256[] memory equippedWeapons) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((equippedWeapons))); + } + + /** + * @notice Set equippedWeapons. + */ + function _setEquippedWeapons(bytes32 characterId, uint256[] memory equippedWeapons) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((equippedWeapons))); + } + + /** + * @notice Get the length of equippedWeapons. + */ + function lengthEquippedWeapons(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of equippedWeapons. + */ + function _lengthEquippedWeapons(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of equippedWeapons. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemEquippedWeapons(bytes32 characterId, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of equippedWeapons. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemEquippedWeapons(bytes32 characterId, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Push an element to equippedWeapons. + */ + function pushEquippedWeapons(bytes32 characterId, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to equippedWeapons. + */ + function _pushEquippedWeapons(bytes32 characterId, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from equippedWeapons. + */ + function popEquippedWeapons(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Pop an element from equippedWeapons. + */ + function _popEquippedWeapons(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Update an element of equippedWeapons at `_index`. + */ + function updateEquippedWeapons(bytes32 characterId, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of equippedWeapons at `_index`. + */ + function _updateEquippedWeapons(bytes32 characterId, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get equippedSpells. + */ + function getEquippedSpells(bytes32 characterId) internal view returns (bytes32[] memory equippedSpells) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 2); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get equippedSpells. + */ + function _getEquippedSpells(bytes32 characterId) internal view returns (bytes32[] memory equippedSpells) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 2); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Set equippedSpells. + */ + function setEquippedSpells(bytes32 characterId, bytes32[] memory equippedSpells) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 2, EncodeArray.encode((equippedSpells))); + } + + /** + * @notice Set equippedSpells. + */ + function _setEquippedSpells(bytes32 characterId, bytes32[] memory equippedSpells) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 2, EncodeArray.encode((equippedSpells))); + } + + /** + * @notice Get the length of equippedSpells. + */ + function lengthEquippedSpells(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 2); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of equippedSpells. + */ + function _lengthEquippedSpells(bytes32 characterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 2); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of equippedSpells. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemEquippedSpells(bytes32 characterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 2, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of equippedSpells. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemEquippedSpells(bytes32 characterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 2, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Push an element to equippedSpells. + */ + function pushEquippedSpells(bytes32 characterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 2, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to equippedSpells. + */ + function _pushEquippedSpells(bytes32 characterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 2, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from equippedSpells. + */ + function popEquippedSpells(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 2, 32); + } + + /** + * @notice Pop an element from equippedSpells. + */ + function _popEquippedSpells(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 2, 32); + } + + /** + * @notice Update an element of equippedSpells at `_index`. + */ + function updateEquippedSpells(bytes32 characterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 2, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of equippedSpells at `_index`. + */ + function _updateEquippedSpells(bytes32 characterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 2, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(bytes32 characterId) internal view returns (CharacterEquipmentData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 characterId) internal view returns (CharacterEquipmentData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set( + bytes32 characterId, + int256 strBonus, + int256 agiBonus, + int256 intBonus, + int256 hpBonus, + uint256 armor, + uint256[] memory equippedArmor, + uint256[] memory equippedWeapons, + bytes32[] memory equippedSpells + ) internal { + bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); + + EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); + bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set( + bytes32 characterId, + int256 strBonus, + int256 agiBonus, + int256 intBonus, + int256 hpBonus, + uint256 armor, + uint256[] memory equippedArmor, + uint256[] memory equippedWeapons, + bytes32[] memory equippedSpells + ) internal { + bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); + + EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); + bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 characterId, CharacterEquipmentData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.strBonus, + _table.agiBonus, + _table.intBonus, + _table.hpBonus, + _table.armor + ); + + EncodedLengths _encodedLengths = encodeLengths(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); + bytes memory _dynamicData = encodeDynamic(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 characterId, CharacterEquipmentData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.strBonus, + _table.agiBonus, + _table.intBonus, + _table.hpBonus, + _table.armor + ); + + EncodedLengths _encodedLengths = encodeLengths(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); + bytes memory _dynamicData = encodeDynamic(_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic( + bytes memory _blob + ) internal pure returns (int256 strBonus, int256 agiBonus, int256 intBonus, int256 hpBonus, uint256 armor) { + strBonus = (int256(uint256(Bytes.getBytes32(_blob, 0)))); + + agiBonus = (int256(uint256(Bytes.getBytes32(_blob, 32)))); + + intBonus = (int256(uint256(Bytes.getBytes32(_blob, 64)))); + + hpBonus = (int256(uint256(Bytes.getBytes32(_blob, 96)))); + + armor = (uint256(Bytes.getBytes32(_blob, 128))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic( + EncodedLengths _encodedLengths, + bytes memory _blob + ) + internal + pure + returns (uint256[] memory equippedArmor, uint256[] memory equippedWeapons, bytes32[] memory equippedSpells) + { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + equippedArmor = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); + + _start = _end; + unchecked { + _end += _encodedLengths.atIndex(1); + } + equippedWeapons = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); + + _start = _end; + unchecked { + _end += _encodedLengths.atIndex(2); + } + equippedSpells = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode( + bytes memory _staticData, + EncodedLengths _encodedLengths, + bytes memory _dynamicData + ) internal pure returns (CharacterEquipmentData memory _table) { + (_table.strBonus, _table.agiBonus, _table.intBonus, _table.hpBonus, _table.armor) = decodeStatic(_staticData); + + (_table.equippedArmor, _table.equippedWeapons, _table.equippedSpells) = decodeDynamic( + _encodedLengths, + _dynamicData + ); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic( + int256 strBonus, + int256 agiBonus, + int256 intBonus, + int256 hpBonus, + uint256 armor + ) internal pure returns (bytes memory) { + return abi.encodePacked(strBonus, agiBonus, intBonus, hpBonus, armor); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths( + uint256[] memory equippedArmor, + uint256[] memory equippedWeapons, + bytes32[] memory equippedSpells + ) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack( + equippedArmor.length * 32, + equippedWeapons.length * 32, + equippedSpells.length * 32 + ); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic( + uint256[] memory equippedArmor, + uint256[] memory equippedWeapons, + bytes32[] memory equippedSpells + ) internal pure returns (bytes memory) { + return + abi.encodePacked( + EncodeArray.encode((equippedArmor)), + EncodeArray.encode((equippedWeapons)), + EncodeArray.encode((equippedSpells)) + ); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + int256 strBonus, + int256 agiBonus, + int256 intBonus, + int256 hpBonus, + uint256 armor, + uint256[] memory equippedArmor, + uint256[] memory equippedWeapons, + bytes32[] memory equippedSpells + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(strBonus, agiBonus, intBonus, hpBonus, armor); + + EncodedLengths _encodedLengths = encodeLengths(equippedArmor, equippedWeapons, equippedSpells); + bytes memory _dynamicData = encodeDynamic(equippedArmor, equippedWeapons, equippedSpells); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 characterId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Characters.sol b/packages/contracts/src/codegen/tables/Characters.sol index 03611298f..3ec7e42cc 100644 --- a/packages/contracts/src/codegen/tables/Characters.sol +++ b/packages/contracts/src/codegen/tables/Characters.sol @@ -4,415 +4,421 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; struct CharactersData { - uint256 tokenId; - address owner; - bytes32 name; - bool locked; + uint256 tokenId; + address owner; + bytes32 name; + bool locked; } library Characters { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Characters", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000043686172616374657273000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0055040020142001000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256, address, bytes32, bool) - Schema constant _valueSchema = Schema.wrap(0x005504001f615f60000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "characterId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](4); - fieldNames[0] = "tokenId"; - fieldNames[1] = "owner"; - fieldNames[2] = "name"; - fieldNames[3] = "locked"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get tokenId. - */ - function getTokenId(bytes32 characterId) internal view returns (uint256 tokenId) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get tokenId. - */ - function _getTokenId(bytes32 characterId) internal view returns (uint256 tokenId) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set tokenId. - */ - function setTokenId(bytes32 characterId, uint256 tokenId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((tokenId)), _fieldLayout); - } - - /** - * @notice Set tokenId. - */ - function _setTokenId(bytes32 characterId, uint256 tokenId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((tokenId)), _fieldLayout); - } - - /** - * @notice Get owner. - */ - function getOwner(bytes32 characterId) internal view returns (address owner) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get owner. - */ - function _getOwner(bytes32 characterId) internal view returns (address owner) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set owner. - */ - function setOwner(bytes32 characterId, address owner) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((owner)), _fieldLayout); - } - - /** - * @notice Set owner. - */ - function _setOwner(bytes32 characterId, address owner) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((owner)), _fieldLayout); - } - - /** - * @notice Get name. - */ - function getName(bytes32 characterId) internal view returns (bytes32 name) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (bytes32(_blob)); - } - - /** - * @notice Get name. - */ - function _getName(bytes32 characterId) internal view returns (bytes32 name) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (bytes32(_blob)); - } - - /** - * @notice Set name. - */ - function setName(bytes32 characterId, bytes32 name) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((name)), _fieldLayout); - } - - /** - * @notice Set name. - */ - function _setName(bytes32 characterId, bytes32 name) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((name)), _fieldLayout); - } - - /** - * @notice Get locked. - */ - function getLocked(bytes32 characterId) internal view returns (bool locked) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get locked. - */ - function _getLocked(bytes32 characterId) internal view returns (bool locked) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Set locked. - */ - function setLocked(bytes32 characterId, bool locked) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((locked)), _fieldLayout); - } - - /** - * @notice Set locked. - */ - function _setLocked(bytes32 characterId, bool locked) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((locked)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get(bytes32 characterId) internal view returns (CharactersData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 characterId) internal view returns (CharactersData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(bytes32 characterId, uint256 tokenId, address owner, bytes32 name, bool locked) internal { - bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(bytes32 characterId, uint256 tokenId, address owner, bytes32 name, bool locked) internal { - bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 characterId, CharactersData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.tokenId, _table.owner, _table.name, _table.locked); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 characterId, CharactersData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.tokenId, _table.owner, _table.name, _table.locked); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) - internal - pure - returns (uint256 tokenId, address owner, bytes32 name, bool locked) - { - tokenId = (uint256(Bytes.getBytes32(_blob, 0))); - - owner = (address(Bytes.getBytes20(_blob, 32))); - - name = (Bytes.getBytes32(_blob, 52)); - - locked = (_toBool(uint8(Bytes.getBytes1(_blob, 84)))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode(bytes memory _staticData, EncodedLengths, bytes memory) - internal - pure - returns (CharactersData memory _table) - { - (_table.tokenId, _table.owner, _table.name, _table.locked) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 characterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(uint256 tokenId, address owner, bytes32 name, bool locked) - internal - pure - returns (bytes memory) - { - return abi.encodePacked(tokenId, owner, name, locked); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint256 tokenId, address owner, bytes32 name, bool locked) - internal - pure - returns (bytes memory, EncodedLengths, bytes memory) - { - bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 characterId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = characterId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Characters", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000043686172616374657273000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0055040020142001000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256, address, bytes32, bool) + Schema constant _valueSchema = Schema.wrap(0x005504001f615f60000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "characterId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](4); + fieldNames[0] = "tokenId"; + fieldNames[1] = "owner"; + fieldNames[2] = "name"; + fieldNames[3] = "locked"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get tokenId. + */ + function getTokenId(bytes32 characterId) internal view returns (uint256 tokenId) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get tokenId. + */ + function _getTokenId(bytes32 characterId) internal view returns (uint256 tokenId) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set tokenId. + */ + function setTokenId(bytes32 characterId, uint256 tokenId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((tokenId)), _fieldLayout); + } + + /** + * @notice Set tokenId. + */ + function _setTokenId(bytes32 characterId, uint256 tokenId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((tokenId)), _fieldLayout); + } + + /** + * @notice Get owner. + */ + function getOwner(bytes32 characterId) internal view returns (address owner) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get owner. + */ + function _getOwner(bytes32 characterId) internal view returns (address owner) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set owner. + */ + function setOwner(bytes32 characterId, address owner) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((owner)), _fieldLayout); + } + + /** + * @notice Set owner. + */ + function _setOwner(bytes32 characterId, address owner) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((owner)), _fieldLayout); + } + + /** + * @notice Get name. + */ + function getName(bytes32 characterId) internal view returns (bytes32 name) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (bytes32(_blob)); + } + + /** + * @notice Get name. + */ + function _getName(bytes32 characterId) internal view returns (bytes32 name) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (bytes32(_blob)); + } + + /** + * @notice Set name. + */ + function setName(bytes32 characterId, bytes32 name) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((name)), _fieldLayout); + } + + /** + * @notice Set name. + */ + function _setName(bytes32 characterId, bytes32 name) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((name)), _fieldLayout); + } + + /** + * @notice Get locked. + */ + function getLocked(bytes32 characterId) internal view returns (bool locked) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get locked. + */ + function _getLocked(bytes32 characterId) internal view returns (bool locked) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Set locked. + */ + function setLocked(bytes32 characterId, bool locked) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((locked)), _fieldLayout); + } + + /** + * @notice Set locked. + */ + function _setLocked(bytes32 characterId, bool locked) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((locked)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get(bytes32 characterId) internal view returns (CharactersData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 characterId) internal view returns (CharactersData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(bytes32 characterId, uint256 tokenId, address owner, bytes32 name, bool locked) internal { + bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(bytes32 characterId, uint256 tokenId, address owner, bytes32 name, bool locked) internal { + bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 characterId, CharactersData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.tokenId, _table.owner, _table.name, _table.locked); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 characterId, CharactersData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.tokenId, _table.owner, _table.name, _table.locked); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic( + bytes memory _blob + ) internal pure returns (uint256 tokenId, address owner, bytes32 name, bool locked) { + tokenId = (uint256(Bytes.getBytes32(_blob, 0))); + + owner = (address(Bytes.getBytes20(_blob, 32))); + + name = (Bytes.getBytes32(_blob, 52)); + + locked = (_toBool(uint8(Bytes.getBytes1(_blob, 84)))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode( + bytes memory _staticData, + EncodedLengths, + bytes memory + ) internal pure returns (CharactersData memory _table) { + (_table.tokenId, _table.owner, _table.name, _table.locked) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic( + uint256 tokenId, + address owner, + bytes32 name, + bool locked + ) internal pure returns (bytes memory) { + return abi.encodePacked(tokenId, owner, name, locked); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + uint256 tokenId, + address owner, + bytes32 name, + bool locked + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(tokenId, owner, name, locked); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 characterId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = characterId; + + return _keyTuple; + } } /** @@ -422,7 +428,7 @@ library Characters { * @return result The boolean value. */ function _toBool(uint8 value) pure returns (bool result) { - assembly { - result := value - } + assembly { + result := value + } } diff --git a/packages/contracts/src/codegen/tables/CombatEncounter.sol b/packages/contracts/src/codegen/tables/CombatEncounter.sol index 76270d8c0..261547160 100644 --- a/packages/contracts/src/codegen/tables/CombatEncounter.sol +++ b/packages/contracts/src/codegen/tables/CombatEncounter.sol @@ -4,874 +4,879 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import {EncounterType} from "./../common.sol"; +import { EncounterType } from "./../common.sol"; struct CombatEncounterData { - EncounterType encounterType; - uint256 start; - uint256 end; - uint256 currentTurn; - uint256 maxTurns; - bytes32[] defenders; - bytes32[] attackers; + EncounterType encounterType; + uint256 start; + uint256 end; + uint256 currentTurn; + uint256 maxTurns; + bytes32[] defenders; + bytes32[] attackers; } library CombatEncounter { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "CombatEncounter", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000436f6d626174456e636f756e74657200); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0081050201202020200000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint8, uint256, uint256, uint256, uint256, bytes32[], bytes32[]) - Schema constant _valueSchema = Schema.wrap(0x00810502001f1f1f1fc1c1000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "encounterId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](7); - fieldNames[0] = "encounterType"; - fieldNames[1] = "start"; - fieldNames[2] = "end"; - fieldNames[3] = "currentTurn"; - fieldNames[4] = "maxTurns"; - fieldNames[5] = "defenders"; - fieldNames[6] = "attackers"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get encounterType. - */ - function getEncounterType(bytes32 encounterId) internal view returns (EncounterType encounterType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return EncounterType(uint8(bytes1(_blob))); - } - - /** - * @notice Get encounterType. - */ - function _getEncounterType(bytes32 encounterId) internal view returns (EncounterType encounterType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return EncounterType(uint8(bytes1(_blob))); - } - - /** - * @notice Set encounterType. - */ - function setEncounterType(bytes32 encounterId, EncounterType encounterType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(encounterType)), _fieldLayout); - } - - /** - * @notice Set encounterType. - */ - function _setEncounterType(bytes32 encounterId, EncounterType encounterType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(encounterType)), _fieldLayout); - } - - /** - * @notice Get start. - */ - function getStart(bytes32 encounterId) internal view returns (uint256 start) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get start. - */ - function _getStart(bytes32 encounterId) internal view returns (uint256 start) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set start. - */ - function setStart(bytes32 encounterId, uint256 start) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((start)), _fieldLayout); - } - - /** - * @notice Set start. - */ - function _setStart(bytes32 encounterId, uint256 start) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((start)), _fieldLayout); - } - - /** - * @notice Get end. - */ - function getEnd(bytes32 encounterId) internal view returns (uint256 end) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get end. - */ - function _getEnd(bytes32 encounterId) internal view returns (uint256 end) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set end. - */ - function setEnd(bytes32 encounterId, uint256 end) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((end)), _fieldLayout); - } - - /** - * @notice Set end. - */ - function _setEnd(bytes32 encounterId, uint256 end) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((end)), _fieldLayout); - } - - /** - * @notice Get currentTurn. - */ - function getCurrentTurn(bytes32 encounterId) internal view returns (uint256 currentTurn) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get currentTurn. - */ - function _getCurrentTurn(bytes32 encounterId) internal view returns (uint256 currentTurn) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set currentTurn. - */ - function setCurrentTurn(bytes32 encounterId, uint256 currentTurn) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((currentTurn)), _fieldLayout); - } - - /** - * @notice Set currentTurn. - */ - function _setCurrentTurn(bytes32 encounterId, uint256 currentTurn) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((currentTurn)), _fieldLayout); - } - - /** - * @notice Get maxTurns. - */ - function getMaxTurns(bytes32 encounterId) internal view returns (uint256 maxTurns) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get maxTurns. - */ - function _getMaxTurns(bytes32 encounterId) internal view returns (uint256 maxTurns) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set maxTurns. - */ - function setMaxTurns(bytes32 encounterId, uint256 maxTurns) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((maxTurns)), _fieldLayout); - } - - /** - * @notice Set maxTurns. - */ - function _setMaxTurns(bytes32 encounterId, uint256 maxTurns) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((maxTurns)), _fieldLayout); - } - - /** - * @notice Get defenders. - */ - function getDefenders(bytes32 encounterId) internal view returns (bytes32[] memory defenders) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get defenders. - */ - function _getDefenders(bytes32 encounterId) internal view returns (bytes32[] memory defenders) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Set defenders. - */ - function setDefenders(bytes32 encounterId, bytes32[] memory defenders) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((defenders))); - } - - /** - * @notice Set defenders. - */ - function _setDefenders(bytes32 encounterId, bytes32[] memory defenders) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((defenders))); - } - - /** - * @notice Get the length of defenders. - */ - function lengthDefenders(bytes32 encounterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of defenders. - */ - function _lengthDefenders(bytes32 encounterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of defenders. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemDefenders(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _blob = - StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of defenders. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemDefenders(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Push an element to defenders. - */ - function pushDefenders(bytes32 encounterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to defenders. - */ - function _pushDefenders(bytes32 encounterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from defenders. - */ - function popDefenders(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from defenders. - */ - function _popDefenders(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Update an element of defenders at `_index`. - */ - function updateDefenders(bytes32 encounterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData( - _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded - ); - } - } - - /** - * @notice Update an element of defenders at `_index`. - */ - function _updateDefenders(bytes32 encounterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get attackers. - */ - function getAttackers(bytes32 encounterId) internal view returns (bytes32[] memory attackers) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get attackers. - */ - function _getAttackers(bytes32 encounterId) internal view returns (bytes32[] memory attackers) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Set attackers. - */ - function setAttackers(bytes32 encounterId, bytes32[] memory attackers) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((attackers))); - } - - /** - * @notice Set attackers. - */ - function _setAttackers(bytes32 encounterId, bytes32[] memory attackers) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((attackers))); - } - - /** - * @notice Get the length of attackers. - */ - function lengthAttackers(bytes32 encounterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of attackers. - */ - function _lengthAttackers(bytes32 encounterId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of attackers. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemAttackers(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _blob = - StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of attackers. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemAttackers(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Push an element to attackers. - */ - function pushAttackers(bytes32 encounterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to attackers. - */ - function _pushAttackers(bytes32 encounterId, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from attackers. - */ - function popAttackers(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Pop an element from attackers. - */ - function _popAttackers(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Update an element of attackers at `_index`. - */ - function updateAttackers(bytes32 encounterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData( - _tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded - ); - } - } - - /** - * @notice Update an element of attackers at `_index`. - */ - function _updateAttackers(bytes32 encounterId, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(bytes32 encounterId) internal view returns (CombatEncounterData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 encounterId) internal view returns (CombatEncounterData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set( - bytes32 encounterId, - EncounterType encounterType, - uint256 start, - uint256 end, - uint256 currentTurn, - uint256 maxTurns, - bytes32[] memory defenders, - bytes32[] memory attackers - ) internal { - bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); - - EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); - bytes memory _dynamicData = encodeDynamic(defenders, attackers); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set( - bytes32 encounterId, - EncounterType encounterType, - uint256 start, - uint256 end, - uint256 currentTurn, - uint256 maxTurns, - bytes32[] memory defenders, - bytes32[] memory attackers - ) internal { - bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); - - EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); - bytes memory _dynamicData = encodeDynamic(defenders, attackers); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 encounterId, CombatEncounterData memory _table) internal { - bytes memory _staticData = - encodeStatic(_table.encounterType, _table.start, _table.end, _table.currentTurn, _table.maxTurns); - - EncodedLengths _encodedLengths = encodeLengths(_table.defenders, _table.attackers); - bytes memory _dynamicData = encodeDynamic(_table.defenders, _table.attackers); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 encounterId, CombatEncounterData memory _table) internal { - bytes memory _staticData = - encodeStatic(_table.encounterType, _table.start, _table.end, _table.currentTurn, _table.maxTurns); - - EncodedLengths _encodedLengths = encodeLengths(_table.defenders, _table.attackers); - bytes memory _dynamicData = encodeDynamic(_table.defenders, _table.attackers); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) - internal - pure - returns (EncounterType encounterType, uint256 start, uint256 end, uint256 currentTurn, uint256 maxTurns) - { - encounterType = EncounterType(uint8(Bytes.getBytes1(_blob, 0))); - - start = (uint256(Bytes.getBytes32(_blob, 1))); - - end = (uint256(Bytes.getBytes32(_blob, 33))); - - currentTurn = (uint256(Bytes.getBytes32(_blob, 65))); - - maxTurns = (uint256(Bytes.getBytes32(_blob, 97))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) - internal - pure - returns (bytes32[] memory defenders, bytes32[] memory attackers) - { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - defenders = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); - - _start = _end; - unchecked { - _end += _encodedLengths.atIndex(1); - } - attackers = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) - internal - pure - returns (CombatEncounterData memory _table) - { - (_table.encounterType, _table.start, _table.end, _table.currentTurn, _table.maxTurns) = - decodeStatic(_staticData); - - (_table.defenders, _table.attackers) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic( - EncounterType encounterType, - uint256 start, - uint256 end, - uint256 currentTurn, - uint256 maxTurns - ) internal pure returns (bytes memory) { - return abi.encodePacked(encounterType, start, end, currentTurn, maxTurns); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(bytes32[] memory defenders, bytes32[] memory attackers) - internal - pure - returns (EncodedLengths _encodedLengths) - { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(defenders.length * 32, attackers.length * 32); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes32[] memory defenders, bytes32[] memory attackers) - internal - pure - returns (bytes memory) - { - return abi.encodePacked(EncodeArray.encode((defenders)), EncodeArray.encode((attackers))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - EncounterType encounterType, - uint256 start, - uint256 end, - uint256 currentTurn, - uint256 maxTurns, - bytes32[] memory defenders, - bytes32[] memory attackers - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); - - EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); - bytes memory _dynamicData = encodeDynamic(defenders, attackers); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 encounterId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = encounterId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "CombatEncounter", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000436f6d626174456e636f756e74657200); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0081050201202020200000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint8, uint256, uint256, uint256, uint256, bytes32[], bytes32[]) + Schema constant _valueSchema = Schema.wrap(0x00810502001f1f1f1fc1c1000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "encounterId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](7); + fieldNames[0] = "encounterType"; + fieldNames[1] = "start"; + fieldNames[2] = "end"; + fieldNames[3] = "currentTurn"; + fieldNames[4] = "maxTurns"; + fieldNames[5] = "defenders"; + fieldNames[6] = "attackers"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get encounterType. + */ + function getEncounterType(bytes32 encounterId) internal view returns (EncounterType encounterType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return EncounterType(uint8(bytes1(_blob))); + } + + /** + * @notice Get encounterType. + */ + function _getEncounterType(bytes32 encounterId) internal view returns (EncounterType encounterType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return EncounterType(uint8(bytes1(_blob))); + } + + /** + * @notice Set encounterType. + */ + function setEncounterType(bytes32 encounterId, EncounterType encounterType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(encounterType)), _fieldLayout); + } + + /** + * @notice Set encounterType. + */ + function _setEncounterType(bytes32 encounterId, EncounterType encounterType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(encounterType)), _fieldLayout); + } + + /** + * @notice Get start. + */ + function getStart(bytes32 encounterId) internal view returns (uint256 start) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get start. + */ + function _getStart(bytes32 encounterId) internal view returns (uint256 start) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set start. + */ + function setStart(bytes32 encounterId, uint256 start) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((start)), _fieldLayout); + } + + /** + * @notice Set start. + */ + function _setStart(bytes32 encounterId, uint256 start) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((start)), _fieldLayout); + } + + /** + * @notice Get end. + */ + function getEnd(bytes32 encounterId) internal view returns (uint256 end) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get end. + */ + function _getEnd(bytes32 encounterId) internal view returns (uint256 end) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set end. + */ + function setEnd(bytes32 encounterId, uint256 end) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((end)), _fieldLayout); + } + + /** + * @notice Set end. + */ + function _setEnd(bytes32 encounterId, uint256 end) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((end)), _fieldLayout); + } + + /** + * @notice Get currentTurn. + */ + function getCurrentTurn(bytes32 encounterId) internal view returns (uint256 currentTurn) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get currentTurn. + */ + function _getCurrentTurn(bytes32 encounterId) internal view returns (uint256 currentTurn) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set currentTurn. + */ + function setCurrentTurn(bytes32 encounterId, uint256 currentTurn) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((currentTurn)), _fieldLayout); + } + + /** + * @notice Set currentTurn. + */ + function _setCurrentTurn(bytes32 encounterId, uint256 currentTurn) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((currentTurn)), _fieldLayout); + } + + /** + * @notice Get maxTurns. + */ + function getMaxTurns(bytes32 encounterId) internal view returns (uint256 maxTurns) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get maxTurns. + */ + function _getMaxTurns(bytes32 encounterId) internal view returns (uint256 maxTurns) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set maxTurns. + */ + function setMaxTurns(bytes32 encounterId, uint256 maxTurns) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((maxTurns)), _fieldLayout); + } + + /** + * @notice Set maxTurns. + */ + function _setMaxTurns(bytes32 encounterId, uint256 maxTurns) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((maxTurns)), _fieldLayout); + } + + /** + * @notice Get defenders. + */ + function getDefenders(bytes32 encounterId) internal view returns (bytes32[] memory defenders) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get defenders. + */ + function _getDefenders(bytes32 encounterId) internal view returns (bytes32[] memory defenders) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Set defenders. + */ + function setDefenders(bytes32 encounterId, bytes32[] memory defenders) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((defenders))); + } + + /** + * @notice Set defenders. + */ + function _setDefenders(bytes32 encounterId, bytes32[] memory defenders) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((defenders))); + } + + /** + * @notice Get the length of defenders. + */ + function lengthDefenders(bytes32 encounterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of defenders. + */ + function _lengthDefenders(bytes32 encounterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of defenders. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemDefenders(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of defenders. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemDefenders(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Push an element to defenders. + */ + function pushDefenders(bytes32 encounterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to defenders. + */ + function _pushDefenders(bytes32 encounterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from defenders. + */ + function popDefenders(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from defenders. + */ + function _popDefenders(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Update an element of defenders at `_index`. + */ + function updateDefenders(bytes32 encounterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of defenders at `_index`. + */ + function _updateDefenders(bytes32 encounterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get attackers. + */ + function getAttackers(bytes32 encounterId) internal view returns (bytes32[] memory attackers) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get attackers. + */ + function _getAttackers(bytes32 encounterId) internal view returns (bytes32[] memory attackers) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Set attackers. + */ + function setAttackers(bytes32 encounterId, bytes32[] memory attackers) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((attackers))); + } + + /** + * @notice Set attackers. + */ + function _setAttackers(bytes32 encounterId, bytes32[] memory attackers) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((attackers))); + } + + /** + * @notice Get the length of attackers. + */ + function lengthAttackers(bytes32 encounterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of attackers. + */ + function _lengthAttackers(bytes32 encounterId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of attackers. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemAttackers(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of attackers. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemAttackers(bytes32 encounterId, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Push an element to attackers. + */ + function pushAttackers(bytes32 encounterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to attackers. + */ + function _pushAttackers(bytes32 encounterId, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from attackers. + */ + function popAttackers(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Pop an element from attackers. + */ + function _popAttackers(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Update an element of attackers at `_index`. + */ + function updateAttackers(bytes32 encounterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of attackers at `_index`. + */ + function _updateAttackers(bytes32 encounterId, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(bytes32 encounterId) internal view returns (CombatEncounterData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 encounterId) internal view returns (CombatEncounterData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set( + bytes32 encounterId, + EncounterType encounterType, + uint256 start, + uint256 end, + uint256 currentTurn, + uint256 maxTurns, + bytes32[] memory defenders, + bytes32[] memory attackers + ) internal { + bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); + + EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); + bytes memory _dynamicData = encodeDynamic(defenders, attackers); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set( + bytes32 encounterId, + EncounterType encounterType, + uint256 start, + uint256 end, + uint256 currentTurn, + uint256 maxTurns, + bytes32[] memory defenders, + bytes32[] memory attackers + ) internal { + bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); + + EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); + bytes memory _dynamicData = encodeDynamic(defenders, attackers); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 encounterId, CombatEncounterData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.encounterType, + _table.start, + _table.end, + _table.currentTurn, + _table.maxTurns + ); + + EncodedLengths _encodedLengths = encodeLengths(_table.defenders, _table.attackers); + bytes memory _dynamicData = encodeDynamic(_table.defenders, _table.attackers); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 encounterId, CombatEncounterData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.encounterType, + _table.start, + _table.end, + _table.currentTurn, + _table.maxTurns + ); + + EncodedLengths _encodedLengths = encodeLengths(_table.defenders, _table.attackers); + bytes memory _dynamicData = encodeDynamic(_table.defenders, _table.attackers); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic( + bytes memory _blob + ) + internal + pure + returns (EncounterType encounterType, uint256 start, uint256 end, uint256 currentTurn, uint256 maxTurns) + { + encounterType = EncounterType(uint8(Bytes.getBytes1(_blob, 0))); + + start = (uint256(Bytes.getBytes32(_blob, 1))); + + end = (uint256(Bytes.getBytes32(_blob, 33))); + + currentTurn = (uint256(Bytes.getBytes32(_blob, 65))); + + maxTurns = (uint256(Bytes.getBytes32(_blob, 97))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic( + EncodedLengths _encodedLengths, + bytes memory _blob + ) internal pure returns (bytes32[] memory defenders, bytes32[] memory attackers) { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + defenders = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); + + _start = _end; + unchecked { + _end += _encodedLengths.atIndex(1); + } + attackers = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_bytes32()); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode( + bytes memory _staticData, + EncodedLengths _encodedLengths, + bytes memory _dynamicData + ) internal pure returns (CombatEncounterData memory _table) { + (_table.encounterType, _table.start, _table.end, _table.currentTurn, _table.maxTurns) = decodeStatic(_staticData); + + (_table.defenders, _table.attackers) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic( + EncounterType encounterType, + uint256 start, + uint256 end, + uint256 currentTurn, + uint256 maxTurns + ) internal pure returns (bytes memory) { + return abi.encodePacked(encounterType, start, end, currentTurn, maxTurns); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths( + bytes32[] memory defenders, + bytes32[] memory attackers + ) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(defenders.length * 32, attackers.length * 32); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes32[] memory defenders, bytes32[] memory attackers) internal pure returns (bytes memory) { + return abi.encodePacked(EncodeArray.encode((defenders)), EncodeArray.encode((attackers))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + EncounterType encounterType, + uint256 start, + uint256 end, + uint256 currentTurn, + uint256 maxTurns, + bytes32[] memory defenders, + bytes32[] memory attackers + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(encounterType, start, end, currentTurn, maxTurns); + + EncodedLengths _encodedLengths = encodeLengths(defenders, attackers); + bytes memory _dynamicData = encodeDynamic(defenders, attackers); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 encounterId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = encounterId; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Counters.sol b/packages/contracts/src/codegen/tables/Counters.sol index 5b281e079..abd943ab4 100644 --- a/packages/contracts/src/codegen/tables/Counters.sol +++ b/packages/contracts/src/codegen/tables/Counters.sol @@ -4,208 +4,208 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; library Counters { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Counters", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000436f756e746572730000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0020010020000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (address, uint256) - Schema constant _keySchema = Schema.wrap(0x00340200611f0000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256) - Schema constant _valueSchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](2); - keyNames[0] = "contractAddress"; - keyNames[1] = "mobId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "counter"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get counter. - */ - function getCounter(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get counter. - */ - function _getCounter(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get counter. - */ - function get(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get counter. - */ - function _get(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set counter. - */ - function setCounter(address contractAddress, uint256 mobId, uint256 counter) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); - } - - /** - * @notice Set counter. - */ - function _setCounter(address contractAddress, uint256 mobId, uint256 counter) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); - } - - /** - * @notice Set counter. - */ - function set(address contractAddress, uint256 mobId, uint256 counter) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); - } - - /** - * @notice Set counter. - */ - function _set(address contractAddress, uint256 mobId, uint256 counter) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(address contractAddress, uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(address contractAddress, uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(uint256 counter) internal pure returns (bytes memory) { - return abi.encodePacked(counter); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint256 counter) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(counter); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(address contractAddress, uint256 mobId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); - _keyTuple[1] = bytes32(uint256(mobId)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Counters", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000436f756e746572730000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0020010020000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (address, uint256) + Schema constant _keySchema = Schema.wrap(0x00340200611f0000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256) + Schema constant _valueSchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](2); + keyNames[0] = "contractAddress"; + keyNames[1] = "mobId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "counter"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get counter. + */ + function getCounter(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get counter. + */ + function _getCounter(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get counter. + */ + function get(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get counter. + */ + function _get(address contractAddress, uint256 mobId) internal view returns (uint256 counter) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set counter. + */ + function setCounter(address contractAddress, uint256 mobId, uint256 counter) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); + } + + /** + * @notice Set counter. + */ + function _setCounter(address contractAddress, uint256 mobId, uint256 counter) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); + } + + /** + * @notice Set counter. + */ + function set(address contractAddress, uint256 mobId, uint256 counter) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); + } + + /** + * @notice Set counter. + */ + function _set(address contractAddress, uint256 mobId, uint256 counter) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((counter)), _fieldLayout); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(address contractAddress, uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(address contractAddress, uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(uint256 counter) internal pure returns (bytes memory) { + return abi.encodePacked(counter); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint256 counter) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(counter); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(address contractAddress, uint256 mobId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(uint160(contractAddress))); + _keyTuple[1] = bytes32(uint256(mobId)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/EntitiesAtPosition.sol b/packages/contracts/src/codegen/tables/EntitiesAtPosition.sol index 24dd9c423..ddeea86fd 100644 --- a/packages/contracts/src/codegen/tables/EntitiesAtPosition.sol +++ b/packages/contracts/src/codegen/tables/EntitiesAtPosition.sol @@ -4,484 +4,478 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; library EntitiesAtPosition { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "EntitiesAtPositi", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000456e7469746965734174506f73697469); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint16, uint16) - Schema constant _keySchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bytes32[]) - Schema constant _valueSchema = Schema.wrap(0x00000001c1000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](2); - keyNames[0] = "x"; - keyNames[1] = "y"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "entities"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get entities. - */ - function getEntities(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get entities. - */ - function _getEntities(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get entities. - */ - function get(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Get entities. - */ - function _get(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); - } - - /** - * @notice Set entities. - */ - function setEntities(uint16 x, uint16 y, bytes32[] memory entities) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); - } - - /** - * @notice Set entities. - */ - function _setEntities(uint16 x, uint16 y, bytes32[] memory entities) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); - } - - /** - * @notice Set entities. - */ - function set(uint16 x, uint16 y, bytes32[] memory entities) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); - } - - /** - * @notice Set entities. - */ - function _set(uint16 x, uint16 y, bytes32[] memory entities) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); - } - - /** - * @notice Get the length of entities. - */ - function lengthEntities(uint16 x, uint16 y) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of entities. - */ - function _lengthEntities(uint16 x, uint16 y) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of entities. - */ - function length(uint16 x, uint16 y) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of entities. - */ - function _length(uint16 x, uint16 y) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of entities. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemEntities(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _blob = - StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of entities. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemEntities(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of entities. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItem(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _blob = - StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Get an item of entities. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItem(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (bytes32(_blob)); - } - } - - /** - * @notice Push an element to entities. - */ - function pushEntities(uint16 x, uint16 y, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to entities. - */ - function _pushEntities(uint16 x, uint16 y, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to entities. - */ - function push(uint16 x, uint16 y, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to entities. - */ - function _push(uint16 x, uint16 y, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from entities. - */ - function popEntities(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from entities. - */ - function _popEntities(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from entities. - */ - function pop(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from entities. - */ - function _pop(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Update an element of entities at `_index`. - */ - function updateEntities(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData( - _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded - ); - } - } - - /** - * @notice Update an element of entities at `_index`. - */ - function _updateEntities(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of entities at `_index`. - */ - function update(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData( - _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded - ); - } - } - - /** - * @notice Update an element of entities at `_index`. - */ - function _update(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint16 x, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(bytes32[] memory entities) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(entities.length * 32); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes32[] memory entities) internal pure returns (bytes memory) { - return abi.encodePacked(EncodeArray.encode((entities))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(bytes32[] memory entities) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(entities); - bytes memory _dynamicData = encodeDynamic(entities); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint16 x, uint16 y) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](2); - _keyTuple[0] = bytes32(uint256(x)); - _keyTuple[1] = bytes32(uint256(y)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "EntitiesAtPositi", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000456e7469746965734174506f73697469); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint16, uint16) + Schema constant _keySchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bytes32[]) + Schema constant _valueSchema = Schema.wrap(0x00000001c1000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](2); + keyNames[0] = "x"; + keyNames[1] = "y"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "entities"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get entities. + */ + function getEntities(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get entities. + */ + function _getEntities(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get entities. + */ + function get(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Get entities. + */ + function _get(uint16 x, uint16 y) internal view returns (bytes32[] memory entities) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_bytes32()); + } + + /** + * @notice Set entities. + */ + function setEntities(uint16 x, uint16 y, bytes32[] memory entities) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); + } + + /** + * @notice Set entities. + */ + function _setEntities(uint16 x, uint16 y, bytes32[] memory entities) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); + } + + /** + * @notice Set entities. + */ + function set(uint16 x, uint16 y, bytes32[] memory entities) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); + } + + /** + * @notice Set entities. + */ + function _set(uint16 x, uint16 y, bytes32[] memory entities) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((entities))); + } + + /** + * @notice Get the length of entities. + */ + function lengthEntities(uint16 x, uint16 y) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of entities. + */ + function _lengthEntities(uint16 x, uint16 y) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of entities. + */ + function length(uint16 x, uint16 y) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of entities. + */ + function _length(uint16 x, uint16 y) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of entities. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemEntities(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of entities. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemEntities(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of entities. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItem(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Get an item of entities. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItem(uint16 x, uint16 y, uint256 _index) internal view returns (bytes32) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (bytes32(_blob)); + } + } + + /** + * @notice Push an element to entities. + */ + function pushEntities(uint16 x, uint16 y, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to entities. + */ + function _pushEntities(uint16 x, uint16 y, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to entities. + */ + function push(uint16 x, uint16 y, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to entities. + */ + function _push(uint16 x, uint16 y, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from entities. + */ + function popEntities(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from entities. + */ + function _popEntities(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from entities. + */ + function pop(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from entities. + */ + function _pop(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Update an element of entities at `_index`. + */ + function updateEntities(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of entities at `_index`. + */ + function _updateEntities(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of entities at `_index`. + */ + function update(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of entities at `_index`. + */ + function _update(uint16 x, uint16 y, uint256 _index, bytes32 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint16 x, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(bytes32[] memory entities) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(entities.length * 32); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes32[] memory entities) internal pure returns (bytes memory) { + return abi.encodePacked(EncodeArray.encode((entities))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(bytes32[] memory entities) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(entities); + bytes memory _dynamicData = encodeDynamic(entities); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint16 x, uint16 y) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](2); + _keyTuple[0] = bytes32(uint256(x)); + _keyTuple[1] = bytes32(uint256(y)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Items.sol b/packages/contracts/src/codegen/tables/Items.sol index 4204a825c..d7a85595c 100644 --- a/packages/contracts/src/codegen/tables/Items.sol +++ b/packages/contracts/src/codegen/tables/Items.sol @@ -4,517 +4,522 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import {ItemType} from "./../common.sol"; +import { ItemType } from "./../common.sol"; struct ItemsData { - ItemType itemType; - uint256 dropChance; - bytes stats; + ItemType itemType; + uint256 dropChance; + bytes stats; } library Items { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Items", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004974656d730000000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0021020101200000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint256) - Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint8, uint256, bytes) - Schema constant _valueSchema = Schema.wrap(0x00210201001fc400000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "itemId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](3); - fieldNames[0] = "itemType"; - fieldNames[1] = "dropChance"; - fieldNames[2] = "stats"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get itemType. - */ - function getItemType(uint256 itemId) internal view returns (ItemType itemType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return ItemType(uint8(bytes1(_blob))); - } - - /** - * @notice Get itemType. - */ - function _getItemType(uint256 itemId) internal view returns (ItemType itemType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return ItemType(uint8(bytes1(_blob))); - } - - /** - * @notice Set itemType. - */ - function setItemType(uint256 itemId, ItemType itemType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(itemType)), _fieldLayout); - } - - /** - * @notice Set itemType. - */ - function _setItemType(uint256 itemId, ItemType itemType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(itemType)), _fieldLayout); - } - - /** - * @notice Get dropChance. - */ - function getDropChance(uint256 itemId) internal view returns (uint256 dropChance) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get dropChance. - */ - function _getDropChance(uint256 itemId) internal view returns (uint256 dropChance) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set dropChance. - */ - function setDropChance(uint256 itemId, uint256 dropChance) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((dropChance)), _fieldLayout); - } - - /** - * @notice Set dropChance. - */ - function _setDropChance(uint256 itemId, uint256 dropChance) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((dropChance)), _fieldLayout); - } - - /** - * @notice Get stats. - */ - function getStats(uint256 itemId) internal view returns (bytes memory stats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Get stats. - */ - function _getStats(uint256 itemId) internal view returns (bytes memory stats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Set stats. - */ - function setStats(uint256 itemId, bytes memory stats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((stats))); - } - - /** - * @notice Set stats. - */ - function _setStats(uint256 itemId, bytes memory stats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((stats))); - } - - /** - * @notice Get the length of stats. - */ - function lengthStats(uint256 itemId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of stats. - */ - function _lengthStats(uint256 itemId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of stats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemStats(uint256 itemId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Get an item of stats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemStats(uint256 itemId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Push a slice to stats. - */ - function pushStats(uint256 itemId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to stats. - */ - function _pushStats(uint256 itemId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Pop a slice from stats. - */ - function popStats(uint256 itemId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from stats. - */ - function _popStats(uint256 itemId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Update a slice of stats at `_index`. - */ - function updateStats(uint256 itemId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of stats at `_index`. - */ - function _updateStats(uint256 itemId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(uint256 itemId) internal view returns (ItemsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(uint256 itemId) internal view returns (ItemsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(uint256 itemId, ItemType itemType, uint256 dropChance, bytes memory stats) internal { - bytes memory _staticData = encodeStatic(itemType, dropChance); - - EncodedLengths _encodedLengths = encodeLengths(stats); - bytes memory _dynamicData = encodeDynamic(stats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(uint256 itemId, ItemType itemType, uint256 dropChance, bytes memory stats) internal { - bytes memory _staticData = encodeStatic(itemType, dropChance); - - EncodedLengths _encodedLengths = encodeLengths(stats); - bytes memory _dynamicData = encodeDynamic(stats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(uint256 itemId, ItemsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.itemType, _table.dropChance); - - EncodedLengths _encodedLengths = encodeLengths(_table.stats); - bytes memory _dynamicData = encodeDynamic(_table.stats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(uint256 itemId, ItemsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.itemType, _table.dropChance); - - EncodedLengths _encodedLengths = encodeLengths(_table.stats); - bytes memory _dynamicData = encodeDynamic(_table.stats); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (ItemType itemType, uint256 dropChance) { - itemType = ItemType(uint8(Bytes.getBytes1(_blob, 0))); - - dropChance = (uint256(Bytes.getBytes32(_blob, 1))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) - internal - pure - returns (bytes memory stats) - { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - stats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) - internal - pure - returns (ItemsData memory _table) - { - (_table.itemType, _table.dropChance) = decodeStatic(_staticData); - - (_table.stats) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint256 itemId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint256 itemId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(ItemType itemType, uint256 dropChance) internal pure returns (bytes memory) { - return abi.encodePacked(itemType, dropChance); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(bytes memory stats) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(bytes(stats).length); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes memory stats) internal pure returns (bytes memory) { - return abi.encodePacked(bytes((stats))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(ItemType itemType, uint256 dropChance, bytes memory stats) - internal - pure - returns (bytes memory, EncodedLengths, bytes memory) - { - bytes memory _staticData = encodeStatic(itemType, dropChance); - - EncodedLengths _encodedLengths = encodeLengths(stats); - bytes memory _dynamicData = encodeDynamic(stats); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint256 itemId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(itemId)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Items", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004974656d730000000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0021020101200000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint256) + Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint8, uint256, bytes) + Schema constant _valueSchema = Schema.wrap(0x00210201001fc400000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "itemId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](3); + fieldNames[0] = "itemType"; + fieldNames[1] = "dropChance"; + fieldNames[2] = "stats"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get itemType. + */ + function getItemType(uint256 itemId) internal view returns (ItemType itemType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return ItemType(uint8(bytes1(_blob))); + } + + /** + * @notice Get itemType. + */ + function _getItemType(uint256 itemId) internal view returns (ItemType itemType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return ItemType(uint8(bytes1(_blob))); + } + + /** + * @notice Set itemType. + */ + function setItemType(uint256 itemId, ItemType itemType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(itemType)), _fieldLayout); + } + + /** + * @notice Set itemType. + */ + function _setItemType(uint256 itemId, ItemType itemType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(itemType)), _fieldLayout); + } + + /** + * @notice Get dropChance. + */ + function getDropChance(uint256 itemId) internal view returns (uint256 dropChance) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get dropChance. + */ + function _getDropChance(uint256 itemId) internal view returns (uint256 dropChance) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set dropChance. + */ + function setDropChance(uint256 itemId, uint256 dropChance) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((dropChance)), _fieldLayout); + } + + /** + * @notice Set dropChance. + */ + function _setDropChance(uint256 itemId, uint256 dropChance) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((dropChance)), _fieldLayout); + } + + /** + * @notice Get stats. + */ + function getStats(uint256 itemId) internal view returns (bytes memory stats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Get stats. + */ + function _getStats(uint256 itemId) internal view returns (bytes memory stats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Set stats. + */ + function setStats(uint256 itemId, bytes memory stats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((stats))); + } + + /** + * @notice Set stats. + */ + function _setStats(uint256 itemId, bytes memory stats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((stats))); + } + + /** + * @notice Get the length of stats. + */ + function lengthStats(uint256 itemId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of stats. + */ + function _lengthStats(uint256 itemId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of stats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemStats(uint256 itemId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Get an item of stats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemStats(uint256 itemId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Push a slice to stats. + */ + function pushStats(uint256 itemId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to stats. + */ + function _pushStats(uint256 itemId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Pop a slice from stats. + */ + function popStats(uint256 itemId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from stats. + */ + function _popStats(uint256 itemId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Update a slice of stats at `_index`. + */ + function updateStats(uint256 itemId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of stats at `_index`. + */ + function _updateStats(uint256 itemId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(uint256 itemId) internal view returns (ItemsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(uint256 itemId) internal view returns (ItemsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(uint256 itemId, ItemType itemType, uint256 dropChance, bytes memory stats) internal { + bytes memory _staticData = encodeStatic(itemType, dropChance); + + EncodedLengths _encodedLengths = encodeLengths(stats); + bytes memory _dynamicData = encodeDynamic(stats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(uint256 itemId, ItemType itemType, uint256 dropChance, bytes memory stats) internal { + bytes memory _staticData = encodeStatic(itemType, dropChance); + + EncodedLengths _encodedLengths = encodeLengths(stats); + bytes memory _dynamicData = encodeDynamic(stats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(uint256 itemId, ItemsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.itemType, _table.dropChance); + + EncodedLengths _encodedLengths = encodeLengths(_table.stats); + bytes memory _dynamicData = encodeDynamic(_table.stats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(uint256 itemId, ItemsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.itemType, _table.dropChance); + + EncodedLengths _encodedLengths = encodeLengths(_table.stats); + bytes memory _dynamicData = encodeDynamic(_table.stats); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (ItemType itemType, uint256 dropChance) { + itemType = ItemType(uint8(Bytes.getBytes1(_blob, 0))); + + dropChance = (uint256(Bytes.getBytes32(_blob, 1))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic( + EncodedLengths _encodedLengths, + bytes memory _blob + ) internal pure returns (bytes memory stats) { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + stats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode( + bytes memory _staticData, + EncodedLengths _encodedLengths, + bytes memory _dynamicData + ) internal pure returns (ItemsData memory _table) { + (_table.itemType, _table.dropChance) = decodeStatic(_staticData); + + (_table.stats) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint256 itemId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint256 itemId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(ItemType itemType, uint256 dropChance) internal pure returns (bytes memory) { + return abi.encodePacked(itemType, dropChance); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(bytes memory stats) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(bytes(stats).length); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes memory stats) internal pure returns (bytes memory) { + return abi.encodePacked(bytes((stats))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + ItemType itemType, + uint256 dropChance, + bytes memory stats + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(itemType, dropChance); + + EncodedLengths _encodedLengths = encodeLengths(stats); + bytes memory _dynamicData = encodeDynamic(stats); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint256 itemId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(itemId)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Levels.sol b/packages/contracts/src/codegen/tables/Levels.sol index e41f28a3f..6a2ddb8a1 100644 --- a/packages/contracts/src/codegen/tables/Levels.sol +++ b/packages/contracts/src/codegen/tables/Levels.sol @@ -4,196 +4,196 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; library Levels { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Levels", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004c6576656c7300000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0020010020000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint256) - Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256) - Schema constant _valueSchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "level"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "experience"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get experience. - */ - function getExperience(uint256 level) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get experience. - */ - function _getExperience(uint256 level) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get experience. - */ - function get(uint256 level) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get experience. - */ - function _get(uint256 level) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set experience. - */ - function setExperience(uint256 level, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Set experience. - */ - function _setExperience(uint256 level, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Set experience. - */ - function set(uint256 level, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Set experience. - */ - function _set(uint256 level, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(uint256 experience) internal pure returns (bytes memory) { - return abi.encodePacked(experience); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint256 experience) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(experience); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint256 level) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Levels", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004c6576656c7300000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0020010020000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint256) + Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256) + Schema constant _valueSchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "level"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "experience"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get experience. + */ + function getExperience(uint256 level) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get experience. + */ + function _getExperience(uint256 level) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get experience. + */ + function get(uint256 level) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get experience. + */ + function _get(uint256 level) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set experience. + */ + function setExperience(uint256 level, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Set experience. + */ + function _setExperience(uint256 level, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Set experience. + */ + function set(uint256 level, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Set experience. + */ + function _set(uint256 level, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(uint256 experience) internal pure returns (bytes memory) { + return abi.encodePacked(experience); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint256 experience) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(experience); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint256 level) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/MapConfig.sol b/packages/contracts/src/codegen/tables/MapConfig.sol index ec9b0735d..b4ee8307b 100644 --- a/packages/contracts/src/codegen/tables/MapConfig.sol +++ b/packages/contracts/src/codegen/tables/MapConfig.sol @@ -4,258 +4,264 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; library MapConfig { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MapConfig", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6170436f6e66696700000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0004020002020000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of () - Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint16, uint16) - Schema constant _valueSchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](0); - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "height"; - fieldNames[1] = "width"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get height. - */ - function getHeight() internal view returns (uint16 height) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Get height. - */ - function _getHeight() internal view returns (uint16 height) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Set height. - */ - function setHeight(uint16 height) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((height)), _fieldLayout); - } - - /** - * @notice Set height. - */ - function _setHeight(uint16 height) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((height)), _fieldLayout); - } - - /** - * @notice Get width. - */ - function getWidth() internal view returns (uint16 width) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Get width. - */ - function _getWidth() internal view returns (uint16 width) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Set width. - */ - function setWidth(uint16 width) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((width)), _fieldLayout); - } - - /** - * @notice Set width. - */ - function _setWidth(uint16 width) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((width)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get() internal view returns (uint16 height, uint16 width) { - bytes32[] memory _keyTuple = new bytes32[](0); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get() internal view returns (uint16 height, uint16 width) { - bytes32[] memory _keyTuple = new bytes32[](0); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(uint16 height, uint16 width) internal { - bytes memory _staticData = encodeStatic(height, width); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(uint16 height, uint16 width) internal { - bytes memory _staticData = encodeStatic(height, width); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (uint16 height, uint16 width) { - height = (uint16(Bytes.getBytes2(_blob, 0))); - - width = (uint16(Bytes.getBytes2(_blob, 2))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode(bytes memory _staticData, EncodedLengths, bytes memory) - internal - pure - returns (uint16 height, uint16 width) - { - (height, width) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord() internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord() internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(uint16 height, uint16 width) internal pure returns (bytes memory) { - return abi.encodePacked(height, width); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint16 height, uint16 width) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(height, width); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple() internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](0); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MapConfig", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6170436f6e66696700000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0004020002020000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of () + Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint16, uint16) + Schema constant _valueSchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](0); + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "height"; + fieldNames[1] = "width"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get height. + */ + function getHeight() internal view returns (uint16 height) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Get height. + */ + function _getHeight() internal view returns (uint16 height) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Set height. + */ + function setHeight(uint16 height) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((height)), _fieldLayout); + } + + /** + * @notice Set height. + */ + function _setHeight(uint16 height) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((height)), _fieldLayout); + } + + /** + * @notice Get width. + */ + function getWidth() internal view returns (uint16 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Get width. + */ + function _getWidth() internal view returns (uint16 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Set width. + */ + function setWidth(uint16 width) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((width)), _fieldLayout); + } + + /** + * @notice Set width. + */ + function _setWidth(uint16 width) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((width)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get() internal view returns (uint16 height, uint16 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get() internal view returns (uint16 height, uint16 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(uint16 height, uint16 width) internal { + bytes memory _staticData = encodeStatic(height, width); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(uint16 height, uint16 width) internal { + bytes memory _staticData = encodeStatic(height, width); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (uint16 height, uint16 width) { + height = (uint16(Bytes.getBytes2(_blob, 0))); + + width = (uint16(Bytes.getBytes2(_blob, 2))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode( + bytes memory _staticData, + EncodedLengths, + bytes memory + ) internal pure returns (uint16 height, uint16 width) { + (height, width) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord() internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord() internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(uint16 height, uint16 width) internal pure returns (bytes memory) { + return abi.encodePacked(height, width); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint16 height, uint16 width) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(height, width); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple() internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](0); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/MatchEntity.sol b/packages/contracts/src/codegen/tables/MatchEntity.sol index 098d62179..7333f9719 100644 --- a/packages/contracts/src/codegen/tables/MatchEntity.sol +++ b/packages/contracts/src/codegen/tables/MatchEntity.sol @@ -4,313 +4,318 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; struct MatchEntityData { - bytes32 encounterId; - int256 damageTaken; + bytes32 encounterId; + int256 damageTaken; } library MatchEntity { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MatchEntity", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d61746368456e746974790000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0040020020200000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bytes32, int256) - Schema constant _valueSchema = Schema.wrap(0x004002005f3f0000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "matchEntityId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "encounterId"; - fieldNames[1] = "damageTaken"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get encounterId. - */ - function getEncounterId(bytes32 matchEntityId) internal view returns (bytes32 encounterId) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (bytes32(_blob)); - } - - /** - * @notice Get encounterId. - */ - function _getEncounterId(bytes32 matchEntityId) internal view returns (bytes32 encounterId) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (bytes32(_blob)); - } - - /** - * @notice Set encounterId. - */ - function setEncounterId(bytes32 matchEntityId, bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((encounterId)), _fieldLayout); - } - - /** - * @notice Set encounterId. - */ - function _setEncounterId(bytes32 matchEntityId, bytes32 encounterId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((encounterId)), _fieldLayout); - } - - /** - * @notice Get damageTaken. - */ - function getDamageTaken(bytes32 matchEntityId) internal view returns (int256 damageTaken) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get damageTaken. - */ - function _getDamageTaken(bytes32 matchEntityId) internal view returns (int256 damageTaken) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set damageTaken. - */ - function setDamageTaken(bytes32 matchEntityId, int256 damageTaken) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((damageTaken)), _fieldLayout); - } - - /** - * @notice Set damageTaken. - */ - function _setDamageTaken(bytes32 matchEntityId, int256 damageTaken) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((damageTaken)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get(bytes32 matchEntityId) internal view returns (MatchEntityData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 matchEntityId) internal view returns (MatchEntityData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(bytes32 matchEntityId, bytes32 encounterId, int256 damageTaken) internal { - bytes memory _staticData = encodeStatic(encounterId, damageTaken); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(bytes32 matchEntityId, bytes32 encounterId, int256 damageTaken) internal { - bytes memory _staticData = encodeStatic(encounterId, damageTaken); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 matchEntityId, MatchEntityData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.encounterId, _table.damageTaken); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 matchEntityId, MatchEntityData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.encounterId, _table.damageTaken); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (bytes32 encounterId, int256 damageTaken) { - encounterId = (Bytes.getBytes32(_blob, 0)); - - damageTaken = (int256(uint256(Bytes.getBytes32(_blob, 32)))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode(bytes memory _staticData, EncodedLengths, bytes memory) - internal - pure - returns (MatchEntityData memory _table) - { - (_table.encounterId, _table.damageTaken) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 matchEntityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 matchEntityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(bytes32 encounterId, int256 damageTaken) internal pure returns (bytes memory) { - return abi.encodePacked(encounterId, damageTaken); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(bytes32 encounterId, int256 damageTaken) - internal - pure - returns (bytes memory, EncodedLengths, bytes memory) - { - bytes memory _staticData = encodeStatic(encounterId, damageTaken); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 matchEntityId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = matchEntityId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MatchEntity", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d61746368456e746974790000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0040020020200000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bytes32, int256) + Schema constant _valueSchema = Schema.wrap(0x004002005f3f0000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "matchEntityId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "encounterId"; + fieldNames[1] = "damageTaken"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get encounterId. + */ + function getEncounterId(bytes32 matchEntityId) internal view returns (bytes32 encounterId) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (bytes32(_blob)); + } + + /** + * @notice Get encounterId. + */ + function _getEncounterId(bytes32 matchEntityId) internal view returns (bytes32 encounterId) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (bytes32(_blob)); + } + + /** + * @notice Set encounterId. + */ + function setEncounterId(bytes32 matchEntityId, bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((encounterId)), _fieldLayout); + } + + /** + * @notice Set encounterId. + */ + function _setEncounterId(bytes32 matchEntityId, bytes32 encounterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((encounterId)), _fieldLayout); + } + + /** + * @notice Get damageTaken. + */ + function getDamageTaken(bytes32 matchEntityId) internal view returns (int256 damageTaken) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get damageTaken. + */ + function _getDamageTaken(bytes32 matchEntityId) internal view returns (int256 damageTaken) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set damageTaken. + */ + function setDamageTaken(bytes32 matchEntityId, int256 damageTaken) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((damageTaken)), _fieldLayout); + } + + /** + * @notice Set damageTaken. + */ + function _setDamageTaken(bytes32 matchEntityId, int256 damageTaken) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((damageTaken)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get(bytes32 matchEntityId) internal view returns (MatchEntityData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 matchEntityId) internal view returns (MatchEntityData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(bytes32 matchEntityId, bytes32 encounterId, int256 damageTaken) internal { + bytes memory _staticData = encodeStatic(encounterId, damageTaken); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(bytes32 matchEntityId, bytes32 encounterId, int256 damageTaken) internal { + bytes memory _staticData = encodeStatic(encounterId, damageTaken); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 matchEntityId, MatchEntityData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.encounterId, _table.damageTaken); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 matchEntityId, MatchEntityData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.encounterId, _table.damageTaken); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (bytes32 encounterId, int256 damageTaken) { + encounterId = (Bytes.getBytes32(_blob, 0)); + + damageTaken = (int256(uint256(Bytes.getBytes32(_blob, 32)))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode( + bytes memory _staticData, + EncodedLengths, + bytes memory + ) internal pure returns (MatchEntityData memory _table) { + (_table.encounterId, _table.damageTaken) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 matchEntityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 matchEntityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(bytes32 encounterId, int256 damageTaken) internal pure returns (bytes memory) { + return abi.encodePacked(encounterId, damageTaken); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + bytes32 encounterId, + int256 damageTaken + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(encounterId, damageTaken); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 matchEntityId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = matchEntityId; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Mobs.sol b/packages/contracts/src/codegen/tables/Mobs.sol index 626993865..afda1d10e 100644 --- a/packages/contracts/src/codegen/tables/Mobs.sol +++ b/packages/contracts/src/codegen/tables/Mobs.sol @@ -4,645 +4,649 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import {MobType} from "./../common.sol"; +import { MobType } from "./../common.sol"; struct MobsData { - MobType mobType; - bytes mobStats; - string mobMetadata; + MobType mobType; + bytes mobStats; + string mobMetadata; } library Mobs { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Mobs", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6f6273000000000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010201000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint256) - Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint8, bytes, string) - Schema constant _valueSchema = Schema.wrap(0x0001010200c4c500000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "mobId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](3); - fieldNames[0] = "mobType"; - fieldNames[1] = "mobStats"; - fieldNames[2] = "mobMetadata"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get mobType. - */ - function getMobType(uint256 mobId) internal view returns (MobType mobType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return MobType(uint8(bytes1(_blob))); - } - - /** - * @notice Get mobType. - */ - function _getMobType(uint256 mobId) internal view returns (MobType mobType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return MobType(uint8(bytes1(_blob))); - } - - /** - * @notice Set mobType. - */ - function setMobType(uint256 mobId, MobType mobType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(mobType)), _fieldLayout); - } - - /** - * @notice Set mobType. - */ - function _setMobType(uint256 mobId, MobType mobType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(mobType)), _fieldLayout); - } - - /** - * @notice Get mobStats. - */ - function getMobStats(uint256 mobId) internal view returns (bytes memory mobStats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Get mobStats. - */ - function _getMobStats(uint256 mobId) internal view returns (bytes memory mobStats) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Set mobStats. - */ - function setMobStats(uint256 mobId, bytes memory mobStats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((mobStats))); - } - - /** - * @notice Set mobStats. - */ - function _setMobStats(uint256 mobId, bytes memory mobStats) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((mobStats))); - } - - /** - * @notice Get the length of mobStats. - */ - function lengthMobStats(uint256 mobId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of mobStats. - */ - function _lengthMobStats(uint256 mobId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of mobStats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemMobStats(uint256 mobId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Get an item of mobStats. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemMobStats(uint256 mobId, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Push a slice to mobStats. - */ - function pushMobStats(uint256 mobId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to mobStats. - */ - function _pushMobStats(uint256 mobId, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Pop a slice from mobStats. - */ - function popMobStats(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from mobStats. - */ - function _popMobStats(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Update a slice of mobStats at `_index`. - */ - function updateMobStats(uint256 mobId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of mobStats at `_index`. - */ - function _updateMobStats(uint256 mobId, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get mobMetadata. - */ - function getMobMetadata(uint256 mobId) internal view returns (string memory mobMetadata) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); - return (string(_blob)); - } - - /** - * @notice Get mobMetadata. - */ - function _getMobMetadata(uint256 mobId) internal view returns (string memory mobMetadata) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); - return (string(_blob)); - } - - /** - * @notice Set mobMetadata. - */ - function setMobMetadata(uint256 mobId, string memory mobMetadata) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, bytes((mobMetadata))); - } - - /** - * @notice Set mobMetadata. - */ - function _setMobMetadata(uint256 mobId, string memory mobMetadata) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 1, bytes((mobMetadata))); - } - - /** - * @notice Get the length of mobMetadata. - */ - function lengthMobMetadata(uint256 mobId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of mobMetadata. - */ - function _lengthMobMetadata(uint256 mobId) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of mobMetadata. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemMobMetadata(uint256 mobId, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Get an item of mobMetadata. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemMobMetadata(uint256 mobId, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Push a slice to mobMetadata. - */ - function pushMobMetadata(uint256 mobId, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, bytes((_slice))); - } - - /** - * @notice Push a slice to mobMetadata. - */ - function _pushMobMetadata(uint256 mobId, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, bytes((_slice))); - } - - /** - * @notice Pop a slice from mobMetadata. - */ - function popMobMetadata(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 1); - } - - /** - * @notice Pop a slice from mobMetadata. - */ - function _popMobMetadata(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 1); - } - - /** - * @notice Update a slice of mobMetadata at `_index`. - */ - function updateMobMetadata(uint256 mobId, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of mobMetadata at `_index`. - */ - function _updateMobMetadata(uint256 mobId, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(uint256 mobId) internal view returns (MobsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(uint256 mobId) internal view returns (MobsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(uint256 mobId, MobType mobType, bytes memory mobStats, string memory mobMetadata) internal { - bytes memory _staticData = encodeStatic(mobType); - - EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); - bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(uint256 mobId, MobType mobType, bytes memory mobStats, string memory mobMetadata) internal { - bytes memory _staticData = encodeStatic(mobType); - - EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); - bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(uint256 mobId, MobsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.mobType); - - EncodedLengths _encodedLengths = encodeLengths(_table.mobStats, _table.mobMetadata); - bytes memory _dynamicData = encodeDynamic(_table.mobStats, _table.mobMetadata); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(uint256 mobId, MobsData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.mobType); - - EncodedLengths _encodedLengths = encodeLengths(_table.mobStats, _table.mobMetadata); - bytes memory _dynamicData = encodeDynamic(_table.mobStats, _table.mobMetadata); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (MobType mobType) { - mobType = MobType(uint8(Bytes.getBytes1(_blob, 0))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) - internal - pure - returns (bytes memory mobStats, string memory mobMetadata) - { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - mobStats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); - - _start = _end; - unchecked { - _end += _encodedLengths.atIndex(1); - } - mobMetadata = (string(SliceLib.getSubslice(_blob, _start, _end).toBytes())); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) - internal - pure - returns (MobsData memory _table) - { - (_table.mobType) = decodeStatic(_staticData); - - (_table.mobStats, _table.mobMetadata) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint256 mobId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(MobType mobType) internal pure returns (bytes memory) { - return abi.encodePacked(mobType); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(bytes memory mobStats, string memory mobMetadata) - internal - pure - returns (EncodedLengths _encodedLengths) - { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(bytes(mobStats).length, bytes(mobMetadata).length); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes memory mobStats, string memory mobMetadata) internal pure returns (bytes memory) { - return abi.encodePacked(bytes((mobStats)), bytes((mobMetadata))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(MobType mobType, bytes memory mobStats, string memory mobMetadata) - internal - pure - returns (bytes memory, EncodedLengths, bytes memory) - { - bytes memory _staticData = encodeStatic(mobType); - - EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); - bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint256 mobId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(mobId)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Mobs", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6f6273000000000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010201000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint256) + Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint8, bytes, string) + Schema constant _valueSchema = Schema.wrap(0x0001010200c4c500000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "mobId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](3); + fieldNames[0] = "mobType"; + fieldNames[1] = "mobStats"; + fieldNames[2] = "mobMetadata"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get mobType. + */ + function getMobType(uint256 mobId) internal view returns (MobType mobType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return MobType(uint8(bytes1(_blob))); + } + + /** + * @notice Get mobType. + */ + function _getMobType(uint256 mobId) internal view returns (MobType mobType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return MobType(uint8(bytes1(_blob))); + } + + /** + * @notice Set mobType. + */ + function setMobType(uint256 mobId, MobType mobType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(mobType)), _fieldLayout); + } + + /** + * @notice Set mobType. + */ + function _setMobType(uint256 mobId, MobType mobType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(mobType)), _fieldLayout); + } + + /** + * @notice Get mobStats. + */ + function getMobStats(uint256 mobId) internal view returns (bytes memory mobStats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Get mobStats. + */ + function _getMobStats(uint256 mobId) internal view returns (bytes memory mobStats) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Set mobStats. + */ + function setMobStats(uint256 mobId, bytes memory mobStats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((mobStats))); + } + + /** + * @notice Set mobStats. + */ + function _setMobStats(uint256 mobId, bytes memory mobStats) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((mobStats))); + } + + /** + * @notice Get the length of mobStats. + */ + function lengthMobStats(uint256 mobId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of mobStats. + */ + function _lengthMobStats(uint256 mobId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of mobStats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemMobStats(uint256 mobId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Get an item of mobStats. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemMobStats(uint256 mobId, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Push a slice to mobStats. + */ + function pushMobStats(uint256 mobId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to mobStats. + */ + function _pushMobStats(uint256 mobId, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Pop a slice from mobStats. + */ + function popMobStats(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from mobStats. + */ + function _popMobStats(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Update a slice of mobStats at `_index`. + */ + function updateMobStats(uint256 mobId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of mobStats at `_index`. + */ + function _updateMobStats(uint256 mobId, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get mobMetadata. + */ + function getMobMetadata(uint256 mobId) internal view returns (string memory mobMetadata) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); + return (string(_blob)); + } + + /** + * @notice Get mobMetadata. + */ + function _getMobMetadata(uint256 mobId) internal view returns (string memory mobMetadata) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); + return (string(_blob)); + } + + /** + * @notice Set mobMetadata. + */ + function setMobMetadata(uint256 mobId, string memory mobMetadata) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, bytes((mobMetadata))); + } + + /** + * @notice Set mobMetadata. + */ + function _setMobMetadata(uint256 mobId, string memory mobMetadata) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 1, bytes((mobMetadata))); + } + + /** + * @notice Get the length of mobMetadata. + */ + function lengthMobMetadata(uint256 mobId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of mobMetadata. + */ + function _lengthMobMetadata(uint256 mobId) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of mobMetadata. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemMobMetadata(uint256 mobId, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Get an item of mobMetadata. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemMobMetadata(uint256 mobId, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Push a slice to mobMetadata. + */ + function pushMobMetadata(uint256 mobId, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, bytes((_slice))); + } + + /** + * @notice Push a slice to mobMetadata. + */ + function _pushMobMetadata(uint256 mobId, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, bytes((_slice))); + } + + /** + * @notice Pop a slice from mobMetadata. + */ + function popMobMetadata(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 1); + } + + /** + * @notice Pop a slice from mobMetadata. + */ + function _popMobMetadata(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 1); + } + + /** + * @notice Update a slice of mobMetadata at `_index`. + */ + function updateMobMetadata(uint256 mobId, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of mobMetadata at `_index`. + */ + function _updateMobMetadata(uint256 mobId, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(uint256 mobId) internal view returns (MobsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(uint256 mobId) internal view returns (MobsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(uint256 mobId, MobType mobType, bytes memory mobStats, string memory mobMetadata) internal { + bytes memory _staticData = encodeStatic(mobType); + + EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); + bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(uint256 mobId, MobType mobType, bytes memory mobStats, string memory mobMetadata) internal { + bytes memory _staticData = encodeStatic(mobType); + + EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); + bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(uint256 mobId, MobsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.mobType); + + EncodedLengths _encodedLengths = encodeLengths(_table.mobStats, _table.mobMetadata); + bytes memory _dynamicData = encodeDynamic(_table.mobStats, _table.mobMetadata); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(uint256 mobId, MobsData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.mobType); + + EncodedLengths _encodedLengths = encodeLengths(_table.mobStats, _table.mobMetadata); + bytes memory _dynamicData = encodeDynamic(_table.mobStats, _table.mobMetadata); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (MobType mobType) { + mobType = MobType(uint8(Bytes.getBytes1(_blob, 0))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic( + EncodedLengths _encodedLengths, + bytes memory _blob + ) internal pure returns (bytes memory mobStats, string memory mobMetadata) { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + mobStats = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); + + _start = _end; + unchecked { + _end += _encodedLengths.atIndex(1); + } + mobMetadata = (string(SliceLib.getSubslice(_blob, _start, _end).toBytes())); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode( + bytes memory _staticData, + EncodedLengths _encodedLengths, + bytes memory _dynamicData + ) internal pure returns (MobsData memory _table) { + (_table.mobType) = decodeStatic(_staticData); + + (_table.mobStats, _table.mobMetadata) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint256 mobId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(MobType mobType) internal pure returns (bytes memory) { + return abi.encodePacked(mobType); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths( + bytes memory mobStats, + string memory mobMetadata + ) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(bytes(mobStats).length, bytes(mobMetadata).length); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes memory mobStats, string memory mobMetadata) internal pure returns (bytes memory) { + return abi.encodePacked(bytes((mobStats)), bytes((mobMetadata))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + MobType mobType, + bytes memory mobStats, + string memory mobMetadata + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(mobType); + + EncodedLengths _encodedLengths = encodeLengths(mobStats, mobMetadata); + bytes memory _dynamicData = encodeDynamic(mobStats, mobMetadata); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint256 mobId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(mobId)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/MobsByLevel.sol b/packages/contracts/src/codegen/tables/MobsByLevel.sol index 9e3405e43..8a401ad46 100644 --- a/packages/contracts/src/codegen/tables/MobsByLevel.sol +++ b/packages/contracts/src/codegen/tables/MobsByLevel.sol @@ -4,452 +4,446 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; library MobsByLevel { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MobsByLevel", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6f627342794c6576656c0000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint256) - Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256[]) - Schema constant _valueSchema = Schema.wrap(0x0000000181000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "level"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "mobIds"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get mobIds. - */ - function getMobIds(uint256 level) internal view returns (uint256[] memory mobIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get mobIds. - */ - function _getMobIds(uint256 level) internal view returns (uint256[] memory mobIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get mobIds. - */ - function get(uint256 level) internal view returns (uint256[] memory mobIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get mobIds. - */ - function _get(uint256 level) internal view returns (uint256[] memory mobIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Set mobIds. - */ - function setMobIds(uint256 level, uint256[] memory mobIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); - } - - /** - * @notice Set mobIds. - */ - function _setMobIds(uint256 level, uint256[] memory mobIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); - } - - /** - * @notice Set mobIds. - */ - function set(uint256 level, uint256[] memory mobIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); - } - - /** - * @notice Set mobIds. - */ - function _set(uint256 level, uint256[] memory mobIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); - } - - /** - * @notice Get the length of mobIds. - */ - function lengthMobIds(uint256 level) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of mobIds. - */ - function _lengthMobIds(uint256 level) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of mobIds. - */ - function length(uint256 level) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of mobIds. - */ - function _length(uint256 level) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of mobIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemMobIds(uint256 level, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _blob = - StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of mobIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemMobIds(uint256 level, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of mobIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItem(uint256 level, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _blob = - StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of mobIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItem(uint256 level, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Push an element to mobIds. - */ - function pushMobIds(uint256 level, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to mobIds. - */ - function _pushMobIds(uint256 level, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to mobIds. - */ - function push(uint256 level, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to mobIds. - */ - function _push(uint256 level, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from mobIds. - */ - function popMobIds(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from mobIds. - */ - function _popMobIds(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from mobIds. - */ - function pop(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from mobIds. - */ - function _pop(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Update an element of mobIds at `_index`. - */ - function updateMobIds(uint256 level, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData( - _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded - ); - } - } - - /** - * @notice Update an element of mobIds at `_index`. - */ - function _updateMobIds(uint256 level, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update an element of mobIds at `_index`. - */ - function update(uint256 level, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData( - _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded - ); - } - } - - /** - * @notice Update an element of mobIds at `_index`. - */ - function _update(uint256 level, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(uint256[] memory mobIds) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(mobIds.length * 32); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(uint256[] memory mobIds) internal pure returns (bytes memory) { - return abi.encodePacked(EncodeArray.encode((mobIds))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint256[] memory mobIds) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(mobIds); - bytes memory _dynamicData = encodeDynamic(mobIds); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint256 level) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(level)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MobsByLevel", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6f627342794c6576656c0000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint256) + Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256[]) + Schema constant _valueSchema = Schema.wrap(0x0000000181000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "level"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "mobIds"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get mobIds. + */ + function getMobIds(uint256 level) internal view returns (uint256[] memory mobIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get mobIds. + */ + function _getMobIds(uint256 level) internal view returns (uint256[] memory mobIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get mobIds. + */ + function get(uint256 level) internal view returns (uint256[] memory mobIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get mobIds. + */ + function _get(uint256 level) internal view returns (uint256[] memory mobIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Set mobIds. + */ + function setMobIds(uint256 level, uint256[] memory mobIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); + } + + /** + * @notice Set mobIds. + */ + function _setMobIds(uint256 level, uint256[] memory mobIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); + } + + /** + * @notice Set mobIds. + */ + function set(uint256 level, uint256[] memory mobIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); + } + + /** + * @notice Set mobIds. + */ + function _set(uint256 level, uint256[] memory mobIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((mobIds))); + } + + /** + * @notice Get the length of mobIds. + */ + function lengthMobIds(uint256 level) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of mobIds. + */ + function _lengthMobIds(uint256 level) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of mobIds. + */ + function length(uint256 level) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of mobIds. + */ + function _length(uint256 level) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of mobIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemMobIds(uint256 level, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of mobIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemMobIds(uint256 level, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of mobIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItem(uint256 level, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of mobIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItem(uint256 level, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Push an element to mobIds. + */ + function pushMobIds(uint256 level, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to mobIds. + */ + function _pushMobIds(uint256 level, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to mobIds. + */ + function push(uint256 level, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to mobIds. + */ + function _push(uint256 level, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from mobIds. + */ + function popMobIds(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from mobIds. + */ + function _popMobIds(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from mobIds. + */ + function pop(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from mobIds. + */ + function _pop(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Update an element of mobIds at `_index`. + */ + function updateMobIds(uint256 level, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of mobIds at `_index`. + */ + function _updateMobIds(uint256 level, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of mobIds at `_index`. + */ + function update(uint256 level, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of mobIds at `_index`. + */ + function _update(uint256 level, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(uint256[] memory mobIds) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(mobIds.length * 32); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(uint256[] memory mobIds) internal pure returns (bytes memory) { + return abi.encodePacked(EncodeArray.encode((mobIds))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint256[] memory mobIds) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(mobIds); + bytes memory _dynamicData = encodeDynamic(mobIds); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint256 level) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(level)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Name.sol b/packages/contracts/src/codegen/tables/Name.sol index 567382000..457c9c4bd 100644 --- a/packages/contracts/src/codegen/tables/Name.sol +++ b/packages/contracts/src/codegen/tables/Name.sol @@ -4,446 +4,446 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; library Name { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Name", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004e616d65000000000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (string) - Schema constant _valueSchema = Schema.wrap(0x00000001c5000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "id"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "value"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get value. - */ - function getValue(bytes32 id) internal view returns (string memory value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (string(_blob)); - } - - /** - * @notice Get value. - */ - function _getValue(bytes32 id) internal view returns (string memory value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (string(_blob)); - } - - /** - * @notice Get value. - */ - function get(bytes32 id) internal view returns (string memory value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (string(_blob)); - } - - /** - * @notice Get value. - */ - function _get(bytes32 id) internal view returns (string memory value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (string(_blob)); - } - - /** - * @notice Set value. - */ - function setValue(bytes32 id, string memory value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); - } - - /** - * @notice Set value. - */ - function _setValue(bytes32 id, string memory value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); - } - - /** - * @notice Set value. - */ - function set(bytes32 id, string memory value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); - } - - /** - * @notice Set value. - */ - function _set(bytes32 id, string memory value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); - } - - /** - * @notice Get the length of value. - */ - function lengthValue(bytes32 id) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of value. - */ - function _lengthValue(bytes32 id) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of value. - */ - function length(bytes32 id) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of value. - */ - function _length(bytes32 id) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of value. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemValue(bytes32 id, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Get an item of value. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemValue(bytes32 id, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Get an item of value. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItem(bytes32 id, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Get an item of value. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItem(bytes32 id, uint256 _index) internal view returns (string memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (string(_blob)); - } - } - - /** - * @notice Push a slice to value. - */ - function pushValue(bytes32 id, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to value. - */ - function _pushValue(bytes32 id, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to value. - */ - function push(bytes32 id, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to value. - */ - function _push(bytes32 id, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Pop a slice from value. - */ - function popValue(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from value. - */ - function _popValue(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from value. - */ - function pop(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from value. - */ - function _pop(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Update a slice of value at `_index`. - */ - function updateValue(bytes32 id, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of value at `_index`. - */ - function _updateValue(bytes32 id, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of value at `_index`. - */ - function update(bytes32 id, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of value at `_index`. - */ - function _update(bytes32 id, uint256 _index, string memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 id) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(string memory value) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(bytes(value).length); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(string memory value) internal pure returns (bytes memory) { - return abi.encodePacked(bytes((value))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(string memory value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(value); - bytes memory _dynamicData = encodeDynamic(value); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 id) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = id; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Name", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004e616d65000000000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (string) + Schema constant _valueSchema = Schema.wrap(0x00000001c5000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "id"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "value"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get value. + */ + function getValue(bytes32 id) internal view returns (string memory value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (string(_blob)); + } + + /** + * @notice Get value. + */ + function _getValue(bytes32 id) internal view returns (string memory value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (string(_blob)); + } + + /** + * @notice Get value. + */ + function get(bytes32 id) internal view returns (string memory value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (string(_blob)); + } + + /** + * @notice Get value. + */ + function _get(bytes32 id) internal view returns (string memory value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (string(_blob)); + } + + /** + * @notice Set value. + */ + function setValue(bytes32 id, string memory value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); + } + + /** + * @notice Set value. + */ + function _setValue(bytes32 id, string memory value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); + } + + /** + * @notice Set value. + */ + function set(bytes32 id, string memory value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); + } + + /** + * @notice Set value. + */ + function _set(bytes32 id, string memory value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((value))); + } + + /** + * @notice Get the length of value. + */ + function lengthValue(bytes32 id) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of value. + */ + function _lengthValue(bytes32 id) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of value. + */ + function length(bytes32 id) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of value. + */ + function _length(bytes32 id) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of value. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemValue(bytes32 id, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Get an item of value. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemValue(bytes32 id, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Get an item of value. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItem(bytes32 id, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Get an item of value. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItem(bytes32 id, uint256 _index) internal view returns (string memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (string(_blob)); + } + } + + /** + * @notice Push a slice to value. + */ + function pushValue(bytes32 id, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to value. + */ + function _pushValue(bytes32 id, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to value. + */ + function push(bytes32 id, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to value. + */ + function _push(bytes32 id, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Pop a slice from value. + */ + function popValue(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from value. + */ + function _popValue(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from value. + */ + function pop(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from value. + */ + function _pop(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Update a slice of value at `_index`. + */ + function updateValue(bytes32 id, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of value at `_index`. + */ + function _updateValue(bytes32 id, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of value at `_index`. + */ + function update(bytes32 id, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of value at `_index`. + */ + function _update(bytes32 id, uint256 _index, string memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 id) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(string memory value) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(bytes(value).length); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(string memory value) internal pure returns (bytes memory) { + return abi.encodePacked(bytes((value))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(string memory value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(value); + bytes memory _dynamicData = encodeDynamic(value); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 id) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = id; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/NameExists.sol b/packages/contracts/src/codegen/tables/NameExists.sol index d73781b26..ff68229ed 100644 --- a/packages/contracts/src/codegen/tables/NameExists.sol +++ b/packages/contracts/src/codegen/tables/NameExists.sol @@ -4,198 +4,198 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; library NameExists { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "NameExists", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004e616d65457869737473000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bool) - Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "nameData"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "value"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get value. - */ - function getValue(bytes32 nameData) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function _getValue(bytes32 nameData) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function get(bytes32 nameData) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get value. - */ - function _get(bytes32 nameData) internal view returns (bool value) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Set value. - */ - function setValue(bytes32 nameData, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function _setValue(bytes32 nameData, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function set(bytes32 nameData, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Set value. - */ - function _set(bytes32 nameData, bool value) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 nameData) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 nameData) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(bool value) internal pure returns (bytes memory) { - return abi.encodePacked(value); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(bool value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(value); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 nameData) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = nameData; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "NameExists", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004e616d65457869737473000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bool) + Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "nameData"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "value"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get value. + */ + function getValue(bytes32 nameData) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function _getValue(bytes32 nameData) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function get(bytes32 nameData) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get value. + */ + function _get(bytes32 nameData) internal view returns (bool value) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Set value. + */ + function setValue(bytes32 nameData, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function _setValue(bytes32 nameData, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function set(bytes32 nameData, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Set value. + */ + function _set(bytes32 nameData, bool value) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((value)), _fieldLayout); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 nameData) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 nameData) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(bool value) internal pure returns (bytes memory) { + return abi.encodePacked(value); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(bool value) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(value); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 nameData) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = nameData; + + return _keyTuple; + } } /** @@ -205,7 +205,7 @@ library NameExists { * @return result The boolean value. */ function _toBool(uint8 value) pure returns (bool result) { - assembly { - result := value - } + assembly { + result := value + } } diff --git a/packages/contracts/src/codegen/tables/Position.sol b/packages/contracts/src/codegen/tables/Position.sol index 632db1f04..67bcacf09 100644 --- a/packages/contracts/src/codegen/tables/Position.sol +++ b/packages/contracts/src/codegen/tables/Position.sol @@ -4,274 +4,276 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; library Position { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Position", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000506f736974696f6e0000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0004020002020000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint16, uint16) - Schema constant _valueSchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "entity"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "x"; - fieldNames[1] = "y"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get x. - */ - function getX(bytes32 entity) internal view returns (uint16 x) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Get x. - */ - function _getX(bytes32 entity) internal view returns (uint16 x) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Set x. - */ - function setX(bytes32 entity, uint16 x) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((x)), _fieldLayout); - } - - /** - * @notice Set x. - */ - function _setX(bytes32 entity, uint16 x) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((x)), _fieldLayout); - } - - /** - * @notice Get y. - */ - function getY(bytes32 entity) internal view returns (uint16 y) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Get y. - */ - function _getY(bytes32 entity) internal view returns (uint16 y) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint16(bytes2(_blob))); - } - - /** - * @notice Set y. - */ - function setY(bytes32 entity, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((y)), _fieldLayout); - } - - /** - * @notice Set y. - */ - function _setY(bytes32 entity, uint16 y) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((y)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get(bytes32 entity) internal view returns (uint16 x, uint16 y) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 entity) internal view returns (uint16 x, uint16 y) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(bytes32 entity, uint16 x, uint16 y) internal { - bytes memory _staticData = encodeStatic(x, y); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(bytes32 entity, uint16 x, uint16 y) internal { - bytes memory _staticData = encodeStatic(x, y); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (uint16 x, uint16 y) { - x = (uint16(Bytes.getBytes2(_blob, 0))); - - y = (uint16(Bytes.getBytes2(_blob, 2))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode(bytes memory _staticData, EncodedLengths, bytes memory) - internal - pure - returns (uint16 x, uint16 y) - { - (x, y) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 entity) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 entity) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(uint16 x, uint16 y) internal pure returns (bytes memory) { - return abi.encodePacked(x, y); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint16 x, uint16 y) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(x, y); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 entity) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entity; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Position", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000506f736974696f6e0000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0004020002020000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint16, uint16) + Schema constant _valueSchema = Schema.wrap(0x0004020001010000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "entity"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "x"; + fieldNames[1] = "y"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get x. + */ + function getX(bytes32 entity) internal view returns (uint16 x) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Get x. + */ + function _getX(bytes32 entity) internal view returns (uint16 x) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Set x. + */ + function setX(bytes32 entity, uint16 x) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((x)), _fieldLayout); + } + + /** + * @notice Set x. + */ + function _setX(bytes32 entity, uint16 x) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((x)), _fieldLayout); + } + + /** + * @notice Get y. + */ + function getY(bytes32 entity) internal view returns (uint16 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Get y. + */ + function _getY(bytes32 entity) internal view returns (uint16 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint16(bytes2(_blob))); + } + + /** + * @notice Set y. + */ + function setY(bytes32 entity, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((y)), _fieldLayout); + } + + /** + * @notice Set y. + */ + function _setY(bytes32 entity, uint16 y) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((y)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get(bytes32 entity) internal view returns (uint16 x, uint16 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 entity) internal view returns (uint16 x, uint16 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(bytes32 entity, uint16 x, uint16 y) internal { + bytes memory _staticData = encodeStatic(x, y); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(bytes32 entity, uint16 x, uint16 y) internal { + bytes memory _staticData = encodeStatic(x, y); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (uint16 x, uint16 y) { + x = (uint16(Bytes.getBytes2(_blob, 0))); + + y = (uint16(Bytes.getBytes2(_blob, 2))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode(bytes memory _staticData, EncodedLengths, bytes memory) internal pure returns (uint16 x, uint16 y) { + (x, y) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 entity) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 entity) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(uint16 x, uint16 y) internal pure returns (bytes memory) { + return abi.encodePacked(x, y); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint16 x, uint16 y) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(x, y); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 entity) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entity; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/RandomNumbers.sol b/packages/contracts/src/codegen/tables/RandomNumbers.sol index 4b24b193f..82c210a9c 100644 --- a/packages/contracts/src/codegen/tables/RandomNumbers.sol +++ b/packages/contracts/src/codegen/tables/RandomNumbers.sol @@ -4,471 +4,475 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import {RngRequestType} from "./../common.sol"; +import { RngRequestType } from "./../common.sol"; struct RandomNumbersData { - RngRequestType RequestType; - bytes arbitraryData; + RngRequestType RequestType; + bytes arbitraryData; } library RandomNumbers { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "RandomNumbers", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000052616e646f6d4e756d62657273000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010101000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint64) - Schema constant _keySchema = Schema.wrap(0x0008010007000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint8, bytes) - Schema constant _valueSchema = Schema.wrap(0x0001010100c40000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "sequenceNumber"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "RequestType"; - fieldNames[1] = "arbitraryData"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get RequestType. - */ - function getRequestType(uint64 sequenceNumber) internal view returns (RngRequestType RequestType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return RngRequestType(uint8(bytes1(_blob))); - } - - /** - * @notice Get RequestType. - */ - function _getRequestType(uint64 sequenceNumber) internal view returns (RngRequestType RequestType) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return RngRequestType(uint8(bytes1(_blob))); - } - - /** - * @notice Set RequestType. - */ - function setRequestType(uint64 sequenceNumber, RngRequestType RequestType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(RequestType)), _fieldLayout); - } - - /** - * @notice Set RequestType. - */ - function _setRequestType(uint64 sequenceNumber, RngRequestType RequestType) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(RequestType)), _fieldLayout); - } - - /** - * @notice Get arbitraryData. - */ - function getArbitraryData(uint64 sequenceNumber) internal view returns (bytes memory arbitraryData) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Get arbitraryData. - */ - function _getArbitraryData(uint64 sequenceNumber) internal view returns (bytes memory arbitraryData) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (bytes(_blob)); - } - - /** - * @notice Set arbitraryData. - */ - function setArbitraryData(uint64 sequenceNumber, bytes memory arbitraryData) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((arbitraryData))); - } - - /** - * @notice Set arbitraryData. - */ - function _setArbitraryData(uint64 sequenceNumber, bytes memory arbitraryData) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((arbitraryData))); - } - - /** - * @notice Get the length of arbitraryData. - */ - function lengthArbitraryData(uint64 sequenceNumber) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get the length of arbitraryData. - */ - function _lengthArbitraryData(uint64 sequenceNumber) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 1; - } - } - - /** - * @notice Get an item of arbitraryData. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemArbitraryData(uint64 sequenceNumber, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - unchecked { - bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Get an item of arbitraryData. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemArbitraryData(uint64 sequenceNumber, uint256 _index) internal view returns (bytes memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); - return (bytes(_blob)); - } - } - - /** - * @notice Push a slice to arbitraryData. - */ - function pushArbitraryData(uint64 sequenceNumber, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Push a slice to arbitraryData. - */ - function _pushArbitraryData(uint64 sequenceNumber, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); - } - - /** - * @notice Pop a slice from arbitraryData. - */ - function popArbitraryData(uint64 sequenceNumber) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Pop a slice from arbitraryData. - */ - function _popArbitraryData(uint64 sequenceNumber) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); - } - - /** - * @notice Update a slice of arbitraryData at `_index`. - */ - function updateArbitraryData(uint64 sequenceNumber, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Update a slice of arbitraryData at `_index`. - */ - function _updateArbitraryData(uint64 sequenceNumber, uint256 _index, bytes memory _slice) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - unchecked { - bytes memory _encoded = bytes((_slice)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(uint64 sequenceNumber) internal view returns (RandomNumbersData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(uint64 sequenceNumber) internal view returns (RandomNumbersData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(uint64 sequenceNumber, RngRequestType RequestType, bytes memory arbitraryData) internal { - bytes memory _staticData = encodeStatic(RequestType); - - EncodedLengths _encodedLengths = encodeLengths(arbitraryData); - bytes memory _dynamicData = encodeDynamic(arbitraryData); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(uint64 sequenceNumber, RngRequestType RequestType, bytes memory arbitraryData) internal { - bytes memory _staticData = encodeStatic(RequestType); - - EncodedLengths _encodedLengths = encodeLengths(arbitraryData); - bytes memory _dynamicData = encodeDynamic(arbitraryData); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(uint64 sequenceNumber, RandomNumbersData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.RequestType); - - EncodedLengths _encodedLengths = encodeLengths(_table.arbitraryData); - bytes memory _dynamicData = encodeDynamic(_table.arbitraryData); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(uint64 sequenceNumber, RandomNumbersData memory _table) internal { - bytes memory _staticData = encodeStatic(_table.RequestType); - - EncodedLengths _encodedLengths = encodeLengths(_table.arbitraryData); - bytes memory _dynamicData = encodeDynamic(_table.arbitraryData); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) internal pure returns (RngRequestType RequestType) { - RequestType = RngRequestType(uint8(Bytes.getBytes1(_blob, 0))); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) - internal - pure - returns (bytes memory arbitraryData) - { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - arbitraryData = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode(bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) - internal - pure - returns (RandomNumbersData memory _table) - { - (_table.RequestType) = decodeStatic(_staticData); - - (_table.arbitraryData) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(uint64 sequenceNumber) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(uint64 sequenceNumber) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(RngRequestType RequestType) internal pure returns (bytes memory) { - return abi.encodePacked(RequestType); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(bytes memory arbitraryData) internal pure returns (EncodedLengths _encodedLengths) { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(bytes(arbitraryData).length); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(bytes memory arbitraryData) internal pure returns (bytes memory) { - return abi.encodePacked(bytes((arbitraryData))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(RngRequestType RequestType, bytes memory arbitraryData) - internal - pure - returns (bytes memory, EncodedLengths, bytes memory) - { - bytes memory _staticData = encodeStatic(RequestType); - - EncodedLengths _encodedLengths = encodeLengths(arbitraryData); - bytes memory _dynamicData = encodeDynamic(arbitraryData); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(uint64 sequenceNumber) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(sequenceNumber)); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "RandomNumbers", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000052616e646f6d4e756d62657273000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010101000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint64) + Schema constant _keySchema = Schema.wrap(0x0008010007000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint8, bytes) + Schema constant _valueSchema = Schema.wrap(0x0001010100c40000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "sequenceNumber"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "RequestType"; + fieldNames[1] = "arbitraryData"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get RequestType. + */ + function getRequestType(uint64 sequenceNumber) internal view returns (RngRequestType RequestType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return RngRequestType(uint8(bytes1(_blob))); + } + + /** + * @notice Get RequestType. + */ + function _getRequestType(uint64 sequenceNumber) internal view returns (RngRequestType RequestType) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return RngRequestType(uint8(bytes1(_blob))); + } + + /** + * @notice Set RequestType. + */ + function setRequestType(uint64 sequenceNumber, RngRequestType RequestType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(RequestType)), _fieldLayout); + } + + /** + * @notice Set RequestType. + */ + function _setRequestType(uint64 sequenceNumber, RngRequestType RequestType) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked(uint8(RequestType)), _fieldLayout); + } + + /** + * @notice Get arbitraryData. + */ + function getArbitraryData(uint64 sequenceNumber) internal view returns (bytes memory arbitraryData) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Get arbitraryData. + */ + function _getArbitraryData(uint64 sequenceNumber) internal view returns (bytes memory arbitraryData) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (bytes(_blob)); + } + + /** + * @notice Set arbitraryData. + */ + function setArbitraryData(uint64 sequenceNumber, bytes memory arbitraryData) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, bytes((arbitraryData))); + } + + /** + * @notice Set arbitraryData. + */ + function _setArbitraryData(uint64 sequenceNumber, bytes memory arbitraryData) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, bytes((arbitraryData))); + } + + /** + * @notice Get the length of arbitraryData. + */ + function lengthArbitraryData(uint64 sequenceNumber) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get the length of arbitraryData. + */ + function _lengthArbitraryData(uint64 sequenceNumber) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 1; + } + } + + /** + * @notice Get an item of arbitraryData. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemArbitraryData(uint64 sequenceNumber, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Get an item of arbitraryData. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemArbitraryData(uint64 sequenceNumber, uint256 _index) internal view returns (bytes memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 1, (_index + 1) * 1); + return (bytes(_blob)); + } + } + + /** + * @notice Push a slice to arbitraryData. + */ + function pushArbitraryData(uint64 sequenceNumber, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Push a slice to arbitraryData. + */ + function _pushArbitraryData(uint64 sequenceNumber, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, bytes((_slice))); + } + + /** + * @notice Pop a slice from arbitraryData. + */ + function popArbitraryData(uint64 sequenceNumber) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Pop a slice from arbitraryData. + */ + function _popArbitraryData(uint64 sequenceNumber) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 1); + } + + /** + * @notice Update a slice of arbitraryData at `_index`. + */ + function updateArbitraryData(uint64 sequenceNumber, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update a slice of arbitraryData at `_index`. + */ + function _updateArbitraryData(uint64 sequenceNumber, uint256 _index, bytes memory _slice) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + unchecked { + bytes memory _encoded = bytes((_slice)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 1), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(uint64 sequenceNumber) internal view returns (RandomNumbersData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(uint64 sequenceNumber) internal view returns (RandomNumbersData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(uint64 sequenceNumber, RngRequestType RequestType, bytes memory arbitraryData) internal { + bytes memory _staticData = encodeStatic(RequestType); + + EncodedLengths _encodedLengths = encodeLengths(arbitraryData); + bytes memory _dynamicData = encodeDynamic(arbitraryData); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(uint64 sequenceNumber, RngRequestType RequestType, bytes memory arbitraryData) internal { + bytes memory _staticData = encodeStatic(RequestType); + + EncodedLengths _encodedLengths = encodeLengths(arbitraryData); + bytes memory _dynamicData = encodeDynamic(arbitraryData); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(uint64 sequenceNumber, RandomNumbersData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.RequestType); + + EncodedLengths _encodedLengths = encodeLengths(_table.arbitraryData); + bytes memory _dynamicData = encodeDynamic(_table.arbitraryData); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(uint64 sequenceNumber, RandomNumbersData memory _table) internal { + bytes memory _staticData = encodeStatic(_table.RequestType); + + EncodedLengths _encodedLengths = encodeLengths(_table.arbitraryData); + bytes memory _dynamicData = encodeDynamic(_table.arbitraryData); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (RngRequestType RequestType) { + RequestType = RngRequestType(uint8(Bytes.getBytes1(_blob, 0))); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic( + EncodedLengths _encodedLengths, + bytes memory _blob + ) internal pure returns (bytes memory arbitraryData) { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + arbitraryData = (bytes(SliceLib.getSubslice(_blob, _start, _end).toBytes())); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode( + bytes memory _staticData, + EncodedLengths _encodedLengths, + bytes memory _dynamicData + ) internal pure returns (RandomNumbersData memory _table) { + (_table.RequestType) = decodeStatic(_staticData); + + (_table.arbitraryData) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint64 sequenceNumber) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint64 sequenceNumber) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(RngRequestType RequestType) internal pure returns (bytes memory) { + return abi.encodePacked(RequestType); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths(bytes memory arbitraryData) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(bytes(arbitraryData).length); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(bytes memory arbitraryData) internal pure returns (bytes memory) { + return abi.encodePacked(bytes((arbitraryData))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + RngRequestType RequestType, + bytes memory arbitraryData + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(RequestType); + + EncodedLengths _encodedLengths = encodeLengths(arbitraryData); + bytes memory _dynamicData = encodeDynamic(arbitraryData); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint64 sequenceNumber) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(sequenceNumber)); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Spawned.sol b/packages/contracts/src/codegen/tables/Spawned.sol index 96be9ded0..0c6ba659f 100644 --- a/packages/contracts/src/codegen/tables/Spawned.sol +++ b/packages/contracts/src/codegen/tables/Spawned.sol @@ -4,198 +4,198 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; library Spawned { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Spawned", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000537061776e6564000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bool) - Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "entityId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](1); - fieldNames[0] = "spawned"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get spawned. - */ - function getSpawned(bytes32 entityId) internal view returns (bool spawned) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get spawned. - */ - function _getSpawned(bytes32 entityId) internal view returns (bool spawned) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get spawned. - */ - function get(bytes32 entityId) internal view returns (bool spawned) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get spawned. - */ - function _get(bytes32 entityId) internal view returns (bool spawned) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Set spawned. - */ - function setSpawned(bytes32 entityId, bool spawned) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); - } - - /** - * @notice Set spawned. - */ - function _setSpawned(bytes32 entityId, bool spawned) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); - } - - /** - * @notice Set spawned. - */ - function set(bytes32 entityId, bool spawned) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); - } - - /** - * @notice Set spawned. - */ - function _set(bytes32 entityId, bool spawned) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 entityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 entityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic(bool spawned) internal pure returns (bytes memory) { - return abi.encodePacked(spawned); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(bool spawned) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(spawned); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 entityId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Spawned", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000537061776e6564000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bool) + Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "entityId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "spawned"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get spawned. + */ + function getSpawned(bytes32 entityId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get spawned. + */ + function _getSpawned(bytes32 entityId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get spawned. + */ + function get(bytes32 entityId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get spawned. + */ + function _get(bytes32 entityId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Set spawned. + */ + function setSpawned(bytes32 entityId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Set spawned. + */ + function _setSpawned(bytes32 entityId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Set spawned. + */ + function set(bytes32 entityId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Set spawned. + */ + function _set(bytes32 entityId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 entityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 entityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(bool spawned) internal pure returns (bytes memory) { + return abi.encodePacked(spawned); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(bool spawned) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(spawned); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 entityId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + return _keyTuple; + } } /** @@ -205,7 +205,7 @@ library Spawned { * @return result The boolean value. */ function _toBool(uint8 value) pure returns (bool result) { - assembly { - result := value - } + assembly { + result := value + } } diff --git a/packages/contracts/src/codegen/tables/StarterItems.sol b/packages/contracts/src/codegen/tables/StarterItems.sol index 5f74bfd11..7bb79c000 100644 --- a/packages/contracts/src/codegen/tables/StarterItems.sol +++ b/packages/contracts/src/codegen/tables/StarterItems.sol @@ -4,585 +4,582 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import {Classes} from "./../common.sol"; +import { Classes } from "./../common.sol"; struct StarterItemsData { - uint256[] itemIds; - uint256[] amounts; + uint256[] itemIds; + uint256[] amounts; } library StarterItems { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "StarterItems", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000537461727465724974656d7300000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0000000200000000000000000000000000000000000000000000000000000000); - - // Hex-encoded key schema of (uint8) - Schema constant _keySchema = Schema.wrap(0x0001010000000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256[], uint256[]) - Schema constant _valueSchema = Schema.wrap(0x0000000281810000000000000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "class"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](2); - fieldNames[0] = "itemIds"; - fieldNames[1] = "amounts"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get itemIds. - */ - function getItemIds(Classes class) internal view returns (uint256[] memory itemIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get itemIds. - */ - function _getItemIds(Classes class) internal view returns (uint256[] memory itemIds) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Set itemIds. - */ - function setItemIds(Classes class, uint256[] memory itemIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((itemIds))); - } - - /** - * @notice Set itemIds. - */ - function _setItemIds(Classes class, uint256[] memory itemIds) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((itemIds))); - } - - /** - * @notice Get the length of itemIds. - */ - function lengthItemIds(Classes class) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of itemIds. - */ - function _lengthItemIds(Classes class) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of itemIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemItemIds(Classes class, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _blob = - StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of itemIds. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemItemIds(Classes class, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Push an element to itemIds. - */ - function pushItemIds(Classes class, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to itemIds. - */ - function _pushItemIds(Classes class, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from itemIds. - */ - function popItemIds(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Pop an element from itemIds. - */ - function _popItemIds(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); - } - - /** - * @notice Update an element of itemIds at `_index`. - */ - function updateItemIds(Classes class, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData( - _tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded - ); - } - } - - /** - * @notice Update an element of itemIds at `_index`. - */ - function _updateItemIds(Classes class, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get amounts. - */ - function getAmounts(Classes class) internal view returns (uint256[] memory amounts) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Get amounts. - */ - function _getAmounts(Classes class) internal view returns (uint256[] memory amounts) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); - return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); - } - - /** - * @notice Set amounts. - */ - function setAmounts(Classes class, uint256[] memory amounts) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((amounts))); - } - - /** - * @notice Set amounts. - */ - function _setAmounts(Classes class, uint256[] memory amounts) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((amounts))); - } - - /** - * @notice Get the length of amounts. - */ - function lengthAmounts(Classes class) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get the length of amounts. - */ - function _lengthAmounts(Classes class) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); - unchecked { - return _byteLength / 32; - } - } - - /** - * @notice Get an item of amounts. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function getItemAmounts(Classes class, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _blob = - StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Get an item of amounts. - * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. - */ - function _getItemAmounts(Classes class, uint256 _index) internal view returns (uint256) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); - return (uint256(bytes32(_blob))); - } - } - - /** - * @notice Push an element to amounts. - */ - function pushAmounts(Classes class, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Push an element to amounts. - */ - function _pushAmounts(Classes class, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); - } - - /** - * @notice Pop an element from amounts. - */ - function popAmounts(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Pop an element from amounts. - */ - function _popAmounts(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); - } - - /** - * @notice Update an element of amounts at `_index`. - */ - function updateAmounts(Classes class, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreSwitch.spliceDynamicData( - _tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded - ); - } - } - - /** - * @notice Update an element of amounts at `_index`. - */ - function _updateAmounts(Classes class, uint256 _index, uint256 _element) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - unchecked { - bytes memory _encoded = abi.encodePacked((_element)); - StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); - } - } - - /** - * @notice Get the full data. - */ - function get(Classes class) internal view returns (StarterItemsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(Classes class) internal view returns (StarterItemsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set(Classes class, uint256[] memory itemIds, uint256[] memory amounts) internal { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); - bytes memory _dynamicData = encodeDynamic(itemIds, amounts); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set(Classes class, uint256[] memory itemIds, uint256[] memory amounts) internal { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); - bytes memory _dynamicData = encodeDynamic(itemIds, amounts); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(Classes class, StarterItemsData memory _table) internal { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(_table.itemIds, _table.amounts); - bytes memory _dynamicData = encodeDynamic(_table.itemIds, _table.amounts); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(Classes class, StarterItemsData memory _table) internal { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(_table.itemIds, _table.amounts); - bytes memory _dynamicData = encodeDynamic(_table.itemIds, _table.amounts); - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. - */ - function decodeDynamic(EncodedLengths _encodedLengths, bytes memory _blob) - internal - pure - returns (uint256[] memory itemIds, uint256[] memory amounts) - { - uint256 _start; - uint256 _end; - unchecked { - _end = _encodedLengths.atIndex(0); - } - itemIds = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); - - _start = _end; - unchecked { - _end += _encodedLengths.atIndex(1); - } - amounts = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * - * @param _encodedLengths Encoded lengths of dynamic fields. - * @param _dynamicData Tightly packed dynamic fields. - */ - function decode(bytes memory, EncodedLengths _encodedLengths, bytes memory _dynamicData) - internal - pure - returns (StarterItemsData memory _table) - { - (_table.itemIds, _table.amounts) = decodeDynamic(_encodedLengths, _dynamicData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack dynamic data lengths using this table's schema. - * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). - */ - function encodeLengths(uint256[] memory itemIds, uint256[] memory amounts) - internal - pure - returns (EncodedLengths _encodedLengths) - { - // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits - unchecked { - _encodedLengths = EncodedLengthsLib.pack(itemIds.length * 32, amounts.length * 32); - } - } - - /** - * @notice Tightly pack dynamic (variable length) data using this table's schema. - * @return The dynamic data, encoded into a sequence of bytes. - */ - function encodeDynamic(uint256[] memory itemIds, uint256[] memory amounts) internal pure returns (bytes memory) { - return abi.encodePacked(EncodeArray.encode((itemIds)), EncodeArray.encode((amounts))); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode(uint256[] memory itemIds, uint256[] memory amounts) - internal - pure - returns (bytes memory, EncodedLengths, bytes memory) - { - bytes memory _staticData; - EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); - bytes memory _dynamicData = encodeDynamic(itemIds, amounts); - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(Classes class) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = bytes32(uint256(uint8(class))); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "StarterItems", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000537461727465724974656d7300000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0000000200000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint8) + Schema constant _keySchema = Schema.wrap(0x0001010000000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256[], uint256[]) + Schema constant _valueSchema = Schema.wrap(0x0000000281810000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "class"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "itemIds"; + fieldNames[1] = "amounts"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get itemIds. + */ + function getItemIds(Classes class) internal view returns (uint256[] memory itemIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get itemIds. + */ + function _getItemIds(Classes class) internal view returns (uint256[] memory itemIds) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 0); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Set itemIds. + */ + function setItemIds(Classes class, uint256[] memory itemIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((itemIds))); + } + + /** + * @notice Set itemIds. + */ + function _setItemIds(Classes class, uint256[] memory itemIds) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.setDynamicField(_tableId, _keyTuple, 0, EncodeArray.encode((itemIds))); + } + + /** + * @notice Get the length of itemIds. + */ + function lengthItemIds(Classes class) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of itemIds. + */ + function _lengthItemIds(Classes class) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 0); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of itemIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemItemIds(Classes class, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of itemIds. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemItemIds(Classes class, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 0, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Push an element to itemIds. + */ + function pushItemIds(Classes class, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to itemIds. + */ + function _pushItemIds(Classes class, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 0, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from itemIds. + */ + function popItemIds(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Pop an element from itemIds. + */ + function _popItemIds(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 0, 32); + } + + /** + * @notice Update an element of itemIds at `_index`. + */ + function updateItemIds(Classes class, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of itemIds at `_index`. + */ + function _updateItemIds(Classes class, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 0, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get amounts. + */ + function getAmounts(Classes class) internal view returns (uint256[] memory amounts) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + bytes memory _blob = StoreSwitch.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Get amounts. + */ + function _getAmounts(Classes class) internal view returns (uint256[] memory amounts) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + bytes memory _blob = StoreCore.getDynamicField(_tableId, _keyTuple, 1); + return (SliceLib.getSubslice(_blob, 0, _blob.length).decodeArray_uint256()); + } + + /** + * @notice Set amounts. + */ + function setAmounts(Classes class, uint256[] memory amounts) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((amounts))); + } + + /** + * @notice Set amounts. + */ + function _setAmounts(Classes class, uint256[] memory amounts) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.setDynamicField(_tableId, _keyTuple, 1, EncodeArray.encode((amounts))); + } + + /** + * @notice Get the length of amounts. + */ + function lengthAmounts(Classes class) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + uint256 _byteLength = StoreSwitch.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get the length of amounts. + */ + function _lengthAmounts(Classes class) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + uint256 _byteLength = StoreCore.getDynamicFieldLength(_tableId, _keyTuple, 1); + unchecked { + return _byteLength / 32; + } + } + + /** + * @notice Get an item of amounts. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function getItemAmounts(Classes class, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _blob = StoreSwitch.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Get an item of amounts. + * @dev Reverts with Store_IndexOutOfBounds if `_index` is out of bounds for the array. + */ + function _getItemAmounts(Classes class, uint256 _index) internal view returns (uint256) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _blob = StoreCore.getDynamicFieldSlice(_tableId, _keyTuple, 1, _index * 32, (_index + 1) * 32); + return (uint256(bytes32(_blob))); + } + } + + /** + * @notice Push an element to amounts. + */ + function pushAmounts(Classes class, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Push an element to amounts. + */ + function _pushAmounts(Classes class, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.pushToDynamicField(_tableId, _keyTuple, 1, abi.encodePacked((_element))); + } + + /** + * @notice Pop an element from amounts. + */ + function popAmounts(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Pop an element from amounts. + */ + function _popAmounts(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.popFromDynamicField(_tableId, _keyTuple, 1, 32); + } + + /** + * @notice Update an element of amounts at `_index`. + */ + function updateAmounts(Classes class, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreSwitch.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Update an element of amounts at `_index`. + */ + function _updateAmounts(Classes class, uint256 _index, uint256 _element) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + unchecked { + bytes memory _encoded = abi.encodePacked((_element)); + StoreCore.spliceDynamicData(_tableId, _keyTuple, 1, uint40(_index * 32), uint40(_encoded.length), _encoded); + } + } + + /** + * @notice Get the full data. + */ + function get(Classes class) internal view returns (StarterItemsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(Classes class) internal view returns (StarterItemsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(Classes class, uint256[] memory itemIds, uint256[] memory amounts) internal { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); + bytes memory _dynamicData = encodeDynamic(itemIds, amounts); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(Classes class, uint256[] memory itemIds, uint256[] memory amounts) internal { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); + bytes memory _dynamicData = encodeDynamic(itemIds, amounts); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(Classes class, StarterItemsData memory _table) internal { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(_table.itemIds, _table.amounts); + bytes memory _dynamicData = encodeDynamic(_table.itemIds, _table.amounts); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(Classes class, StarterItemsData memory _table) internal { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(_table.itemIds, _table.amounts); + bytes memory _dynamicData = encodeDynamic(_table.itemIds, _table.amounts); + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of dynamic data using the encoded lengths. + */ + function decodeDynamic( + EncodedLengths _encodedLengths, + bytes memory _blob + ) internal pure returns (uint256[] memory itemIds, uint256[] memory amounts) { + uint256 _start; + uint256 _end; + unchecked { + _end = _encodedLengths.atIndex(0); + } + itemIds = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); + + _start = _end; + unchecked { + _end += _encodedLengths.atIndex(1); + } + amounts = (SliceLib.getSubslice(_blob, _start, _end).decodeArray_uint256()); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * + * @param _encodedLengths Encoded lengths of dynamic fields. + * @param _dynamicData Tightly packed dynamic fields. + */ + function decode( + bytes memory, + EncodedLengths _encodedLengths, + bytes memory _dynamicData + ) internal pure returns (StarterItemsData memory _table) { + (_table.itemIds, _table.amounts) = decodeDynamic(_encodedLengths, _dynamicData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack dynamic data lengths using this table's schema. + * @return _encodedLengths The lengths of the dynamic fields (packed into a single bytes32 value). + */ + function encodeLengths( + uint256[] memory itemIds, + uint256[] memory amounts + ) internal pure returns (EncodedLengths _encodedLengths) { + // Lengths are effectively checked during copy by 2**40 bytes exceeding gas limits + unchecked { + _encodedLengths = EncodedLengthsLib.pack(itemIds.length * 32, amounts.length * 32); + } + } + + /** + * @notice Tightly pack dynamic (variable length) data using this table's schema. + * @return The dynamic data, encoded into a sequence of bytes. + */ + function encodeDynamic(uint256[] memory itemIds, uint256[] memory amounts) internal pure returns (bytes memory) { + return abi.encodePacked(EncodeArray.encode((itemIds)), EncodeArray.encode((amounts))); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + uint256[] memory itemIds, + uint256[] memory amounts + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData; + EncodedLengths _encodedLengths = encodeLengths(itemIds, amounts); + bytes memory _dynamicData = encodeDynamic(itemIds, amounts); + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(Classes class) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(uint8(class))); + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/Stats.sol b/packages/contracts/src/codegen/tables/Stats.sol index 73e73c2f1..56842ab5e 100644 --- a/packages/contracts/src/codegen/tables/Stats.sol +++ b/packages/contracts/src/codegen/tables/Stats.sol @@ -4,669 +4,701 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; // Import user types -import {Classes} from "./../common.sol"; +import { Classes } from "./../common.sol"; struct StatsData { - uint256 strength; - uint256 agility; - Classes class; - uint256 intelligence; - uint256 baseHitPoints; - int256 currentHp; - uint256 experience; - uint256 level; + uint256 strength; + uint256 agility; + Classes class; + uint256 intelligence; + uint256 baseHitPoints; + int256 currentHp; + uint256 experience; + uint256 level; } library Stats { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Stats", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000053746174730000000000000000000000); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x00e1080020200120202020200000000000000000000000000000000000000000); - - // Hex-encoded key schema of (bytes32) - Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (uint256, uint256, uint8, uint256, uint256, int256, uint256, uint256) - Schema constant _valueSchema = Schema.wrap(0x00e108001f1f001f1f3f1f1f0000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](1); - keyNames[0] = "entityId"; - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](8); - fieldNames[0] = "strength"; - fieldNames[1] = "agility"; - fieldNames[2] = "class"; - fieldNames[3] = "intelligence"; - fieldNames[4] = "baseHitPoints"; - fieldNames[5] = "currentHp"; - fieldNames[6] = "experience"; - fieldNames[7] = "level"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get strength. - */ - function getStrength(bytes32 entityId) internal view returns (uint256 strength) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get strength. - */ - function _getStrength(bytes32 entityId) internal view returns (uint256 strength) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set strength. - */ - function setStrength(bytes32 entityId, uint256 strength) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strength)), _fieldLayout); - } - - /** - * @notice Set strength. - */ - function _setStrength(bytes32 entityId, uint256 strength) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strength)), _fieldLayout); - } - - /** - * @notice Get agility. - */ - function getAgility(bytes32 entityId) internal view returns (uint256 agility) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get agility. - */ - function _getAgility(bytes32 entityId) internal view returns (uint256 agility) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set agility. - */ - function setAgility(bytes32 entityId, uint256 agility) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agility)), _fieldLayout); - } - - /** - * @notice Set agility. - */ - function _setAgility(bytes32 entityId, uint256 agility) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agility)), _fieldLayout); - } - - /** - * @notice Get class. - */ - function getClass(bytes32 entityId) internal view returns (Classes class) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return Classes(uint8(bytes1(_blob))); - } - - /** - * @notice Get class. - */ - function _getClass(bytes32 entityId) internal view returns (Classes class) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return Classes(uint8(bytes1(_blob))); - } - - /** - * @notice Set class. - */ - function setClass(bytes32 entityId, Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked(uint8(class)), _fieldLayout); - } - - /** - * @notice Set class. - */ - function _setClass(bytes32 entityId, Classes class) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked(uint8(class)), _fieldLayout); - } - - /** - * @notice Get intelligence. - */ - function getIntelligence(bytes32 entityId) internal view returns (uint256 intelligence) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get intelligence. - */ - function _getIntelligence(bytes32 entityId) internal view returns (uint256 intelligence) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set intelligence. - */ - function setIntelligence(bytes32 entityId, uint256 intelligence) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((intelligence)), _fieldLayout); - } - - /** - * @notice Set intelligence. - */ - function _setIntelligence(bytes32 entityId, uint256 intelligence) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((intelligence)), _fieldLayout); - } - - /** - * @notice Get baseHitPoints. - */ - function getBaseHitPoints(bytes32 entityId) internal view returns (uint256 baseHitPoints) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get baseHitPoints. - */ - function _getBaseHitPoints(bytes32 entityId) internal view returns (uint256 baseHitPoints) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set baseHitPoints. - */ - function setBaseHitPoints(bytes32 entityId, uint256 baseHitPoints) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((baseHitPoints)), _fieldLayout); - } - - /** - * @notice Set baseHitPoints. - */ - function _setBaseHitPoints(bytes32 entityId, uint256 baseHitPoints) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((baseHitPoints)), _fieldLayout); - } - - /** - * @notice Get currentHp. - */ - function getCurrentHp(bytes32 entityId) internal view returns (int256 currentHp) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Get currentHp. - */ - function _getCurrentHp(bytes32 entityId) internal view returns (int256 currentHp) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); - return (int256(uint256(bytes32(_blob)))); - } - - /** - * @notice Set currentHp. - */ - function setCurrentHp(bytes32 entityId, int256 currentHp) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((currentHp)), _fieldLayout); - } - - /** - * @notice Set currentHp. - */ - function _setCurrentHp(bytes32 entityId, int256 currentHp) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((currentHp)), _fieldLayout); - } - - /** - * @notice Get experience. - */ - function getExperience(bytes32 entityId) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get experience. - */ - function _getExperience(bytes32 entityId) internal view returns (uint256 experience) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set experience. - */ - function setExperience(bytes32 entityId, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Set experience. - */ - function _setExperience(bytes32 entityId, uint256 experience) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((experience)), _fieldLayout); - } - - /** - * @notice Get level. - */ - function getLevel(bytes32 entityId) internal view returns (uint256 level) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 7, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Get level. - */ - function _getLevel(bytes32 entityId) internal view returns (uint256 level) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 7, _fieldLayout); - return (uint256(bytes32(_blob))); - } - - /** - * @notice Set level. - */ - function setLevel(bytes32 entityId, uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setStaticField(_tableId, _keyTuple, 7, abi.encodePacked((level)), _fieldLayout); - } - - /** - * @notice Set level. - */ - function _setLevel(bytes32 entityId, uint256 level) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setStaticField(_tableId, _keyTuple, 7, abi.encodePacked((level)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get(bytes32 entityId) internal view returns (StatsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get(bytes32 entityId) internal view returns (StatsData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set( - bytes32 entityId, - uint256 strength, - uint256 agility, - Classes class, - uint256 intelligence, - uint256 baseHitPoints, - int256 currentHp, - uint256 experience, - uint256 level - ) internal { - bytes memory _staticData = - encodeStatic(strength, agility, class, intelligence, baseHitPoints, currentHp, experience, level); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set( - bytes32 entityId, - uint256 strength, - uint256 agility, - Classes class, - uint256 intelligence, - uint256 baseHitPoints, - int256 currentHp, - uint256 experience, - uint256 level - ) internal { - bytes memory _staticData = - encodeStatic(strength, agility, class, intelligence, baseHitPoints, currentHp, experience, level); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(bytes32 entityId, StatsData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.strength, - _table.agility, - _table.class, - _table.intelligence, - _table.baseHitPoints, - _table.currentHp, - _table.experience, - _table.level - ); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(bytes32 entityId, StatsData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.strength, - _table.agility, - _table.class, - _table.intelligence, - _table.baseHitPoints, - _table.currentHp, - _table.experience, - _table.level - ); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) - internal - pure - returns ( - uint256 strength, - uint256 agility, - Classes class, - uint256 intelligence, - uint256 baseHitPoints, - int256 currentHp, - uint256 experience, - uint256 level - ) - { - strength = (uint256(Bytes.getBytes32(_blob, 0))); - - agility = (uint256(Bytes.getBytes32(_blob, 32))); - - class = Classes(uint8(Bytes.getBytes1(_blob, 64))); - - intelligence = (uint256(Bytes.getBytes32(_blob, 65))); - - baseHitPoints = (uint256(Bytes.getBytes32(_blob, 97))); - - currentHp = (int256(uint256(Bytes.getBytes32(_blob, 129)))); - - experience = (uint256(Bytes.getBytes32(_blob, 161))); - - level = (uint256(Bytes.getBytes32(_blob, 193))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode(bytes memory _staticData, EncodedLengths, bytes memory) - internal - pure - returns (StatsData memory _table) - { - ( - _table.strength, - _table.agility, - _table.class, - _table.intelligence, - _table.baseHitPoints, - _table.currentHp, - _table.experience, - _table.level - ) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord(bytes32 entityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord(bytes32 entityId) internal { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic( - uint256 strength, - uint256 agility, - Classes class, - uint256 intelligence, - uint256 baseHitPoints, - int256 currentHp, - uint256 experience, - uint256 level - ) internal pure returns (bytes memory) { - return abi.encodePacked(strength, agility, class, intelligence, baseHitPoints, currentHp, experience, level); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - uint256 strength, - uint256 agility, - Classes class, - uint256 intelligence, - uint256 baseHitPoints, - int256 currentHp, - uint256 experience, - uint256 level - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = - encodeStatic(strength, agility, class, intelligence, baseHitPoints, currentHp, experience, level); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple(bytes32 entityId) internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](1); - _keyTuple[0] = entityId; - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Stats", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x7462554400000000000000000000000053746174730000000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x00e1080020200120202020200000000000000000000000000000000000000000); + + // Hex-encoded key schema of (bytes32) + Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint256, uint256, uint8, uint256, uint256, int256, uint256, uint256) + Schema constant _valueSchema = Schema.wrap(0x00e108001f1f001f1f3f1f1f0000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "entityId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](8); + fieldNames[0] = "strength"; + fieldNames[1] = "agility"; + fieldNames[2] = "class"; + fieldNames[3] = "intelligence"; + fieldNames[4] = "baseHitPoints"; + fieldNames[5] = "currentHp"; + fieldNames[6] = "experience"; + fieldNames[7] = "level"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get strength. + */ + function getStrength(bytes32 entityId) internal view returns (uint256 strength) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get strength. + */ + function _getStrength(bytes32 entityId) internal view returns (uint256 strength) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set strength. + */ + function setStrength(bytes32 entityId, uint256 strength) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strength)), _fieldLayout); + } + + /** + * @notice Set strength. + */ + function _setStrength(bytes32 entityId, uint256 strength) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((strength)), _fieldLayout); + } + + /** + * @notice Get agility. + */ + function getAgility(bytes32 entityId) internal view returns (uint256 agility) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get agility. + */ + function _getAgility(bytes32 entityId) internal view returns (uint256 agility) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set agility. + */ + function setAgility(bytes32 entityId, uint256 agility) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agility)), _fieldLayout); + } + + /** + * @notice Set agility. + */ + function _setAgility(bytes32 entityId, uint256 agility) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((agility)), _fieldLayout); + } + + /** + * @notice Get class. + */ + function getClass(bytes32 entityId) internal view returns (Classes class) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return Classes(uint8(bytes1(_blob))); + } + + /** + * @notice Get class. + */ + function _getClass(bytes32 entityId) internal view returns (Classes class) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return Classes(uint8(bytes1(_blob))); + } + + /** + * @notice Set class. + */ + function setClass(bytes32 entityId, Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked(uint8(class)), _fieldLayout); + } + + /** + * @notice Set class. + */ + function _setClass(bytes32 entityId, Classes class) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked(uint8(class)), _fieldLayout); + } + + /** + * @notice Get intelligence. + */ + function getIntelligence(bytes32 entityId) internal view returns (uint256 intelligence) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get intelligence. + */ + function _getIntelligence(bytes32 entityId) internal view returns (uint256 intelligence) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set intelligence. + */ + function setIntelligence(bytes32 entityId, uint256 intelligence) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((intelligence)), _fieldLayout); + } + + /** + * @notice Set intelligence. + */ + function _setIntelligence(bytes32 entityId, uint256 intelligence) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((intelligence)), _fieldLayout); + } + + /** + * @notice Get baseHitPoints. + */ + function getBaseHitPoints(bytes32 entityId) internal view returns (uint256 baseHitPoints) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get baseHitPoints. + */ + function _getBaseHitPoints(bytes32 entityId) internal view returns (uint256 baseHitPoints) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set baseHitPoints. + */ + function setBaseHitPoints(bytes32 entityId, uint256 baseHitPoints) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((baseHitPoints)), _fieldLayout); + } + + /** + * @notice Set baseHitPoints. + */ + function _setBaseHitPoints(bytes32 entityId, uint256 baseHitPoints) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((baseHitPoints)), _fieldLayout); + } + + /** + * @notice Get currentHp. + */ + function getCurrentHp(bytes32 entityId) internal view returns (int256 currentHp) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Get currentHp. + */ + function _getCurrentHp(bytes32 entityId) internal view returns (int256 currentHp) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); + return (int256(uint256(bytes32(_blob)))); + } + + /** + * @notice Set currentHp. + */ + function setCurrentHp(bytes32 entityId, int256 currentHp) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((currentHp)), _fieldLayout); + } + + /** + * @notice Set currentHp. + */ + function _setCurrentHp(bytes32 entityId, int256 currentHp) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((currentHp)), _fieldLayout); + } + + /** + * @notice Get experience. + */ + function getExperience(bytes32 entityId) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get experience. + */ + function _getExperience(bytes32 entityId) internal view returns (uint256 experience) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set experience. + */ + function setExperience(bytes32 entityId, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Set experience. + */ + function _setExperience(bytes32 entityId, uint256 experience) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((experience)), _fieldLayout); + } + + /** + * @notice Get level. + */ + function getLevel(bytes32 entityId) internal view returns (uint256 level) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 7, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Get level. + */ + function _getLevel(bytes32 entityId) internal view returns (uint256 level) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 7, _fieldLayout); + return (uint256(bytes32(_blob))); + } + + /** + * @notice Set level. + */ + function setLevel(bytes32 entityId, uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setStaticField(_tableId, _keyTuple, 7, abi.encodePacked((level)), _fieldLayout); + } + + /** + * @notice Set level. + */ + function _setLevel(bytes32 entityId, uint256 level) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setStaticField(_tableId, _keyTuple, 7, abi.encodePacked((level)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get(bytes32 entityId) internal view returns (StatsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(bytes32 entityId) internal view returns (StatsData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set( + bytes32 entityId, + uint256 strength, + uint256 agility, + Classes class, + uint256 intelligence, + uint256 baseHitPoints, + int256 currentHp, + uint256 experience, + uint256 level + ) internal { + bytes memory _staticData = encodeStatic( + strength, + agility, + class, + intelligence, + baseHitPoints, + currentHp, + experience, + level + ); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set( + bytes32 entityId, + uint256 strength, + uint256 agility, + Classes class, + uint256 intelligence, + uint256 baseHitPoints, + int256 currentHp, + uint256 experience, + uint256 level + ) internal { + bytes memory _staticData = encodeStatic( + strength, + agility, + class, + intelligence, + baseHitPoints, + currentHp, + experience, + level + ); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(bytes32 entityId, StatsData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.strength, + _table.agility, + _table.class, + _table.intelligence, + _table.baseHitPoints, + _table.currentHp, + _table.experience, + _table.level + ); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(bytes32 entityId, StatsData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.strength, + _table.agility, + _table.class, + _table.intelligence, + _table.baseHitPoints, + _table.currentHp, + _table.experience, + _table.level + ); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic( + bytes memory _blob + ) + internal + pure + returns ( + uint256 strength, + uint256 agility, + Classes class, + uint256 intelligence, + uint256 baseHitPoints, + int256 currentHp, + uint256 experience, + uint256 level + ) + { + strength = (uint256(Bytes.getBytes32(_blob, 0))); + + agility = (uint256(Bytes.getBytes32(_blob, 32))); + + class = Classes(uint8(Bytes.getBytes1(_blob, 64))); + + intelligence = (uint256(Bytes.getBytes32(_blob, 65))); + + baseHitPoints = (uint256(Bytes.getBytes32(_blob, 97))); + + currentHp = (int256(uint256(Bytes.getBytes32(_blob, 129)))); + + experience = (uint256(Bytes.getBytes32(_blob, 161))); + + level = (uint256(Bytes.getBytes32(_blob, 193))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode( + bytes memory _staticData, + EncodedLengths, + bytes memory + ) internal pure returns (StatsData memory _table) { + ( + _table.strength, + _table.agility, + _table.class, + _table.intelligence, + _table.baseHitPoints, + _table.currentHp, + _table.experience, + _table.level + ) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(bytes32 entityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(bytes32 entityId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic( + uint256 strength, + uint256 agility, + Classes class, + uint256 intelligence, + uint256 baseHitPoints, + int256 currentHp, + uint256 experience, + uint256 level + ) internal pure returns (bytes memory) { + return abi.encodePacked(strength, agility, class, intelligence, baseHitPoints, currentHp, experience, level); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + uint256 strength, + uint256 agility, + Classes class, + uint256 intelligence, + uint256 baseHitPoints, + int256 currentHp, + uint256 experience, + uint256 level + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic( + strength, + agility, + class, + intelligence, + baseHitPoints, + currentHp, + experience, + level + ); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(bytes32 entityId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = entityId; + + return _keyTuple; + } } diff --git a/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol b/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol index 5fa398025..e9c793b22 100644 --- a/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol +++ b/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol @@ -4,574 +4,579 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ // Import store internals -import {IStore} from "@latticexyz/store/src/IStore.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore} from "@latticexyz/store/src/StoreCore.sol"; -import {Bytes} from "@latticexyz/store/src/Bytes.sol"; -import {Memory} from "@latticexyz/store/src/Memory.sol"; -import {SliceLib} from "@latticexyz/store/src/Slice.sol"; -import {EncodeArray} from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; -import {FieldLayout} from "@latticexyz/store/src/FieldLayout.sol"; -import {Schema} from "@latticexyz/store/src/Schema.sol"; -import {EncodedLengths, EncodedLengthsLib} from "@latticexyz/store/src/EncodedLengths.sol"; -import {ResourceId} from "@latticexyz/store/src/ResourceId.sol"; +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; struct UltimateDominionConfigData { - bool locked; - address goldToken; - address characterToken; - address entropy; - address pythProvider; - address items; - address multicall; + bool locked; + address goldToken; + address characterToken; + address entropy; + address pythProvider; + address items; + address multicall; } library UltimateDominionConfig { - // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "UltimateDominion", typeId: RESOURCE_TABLE });` - ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000556c74696d617465446f6d696e696f6e); - - FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0079070001141414141414000000000000000000000000000000000000000000); - - // Hex-encoded key schema of () - Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bool, address, address, address, address, address, address) - Schema constant _valueSchema = Schema.wrap(0x0079070060616161616161000000000000000000000000000000000000000000); - - /** - * @notice Get the table's key field names. - * @return keyNames An array of strings with the names of key fields. - */ - function getKeyNames() internal pure returns (string[] memory keyNames) { - keyNames = new string[](0); - } - - /** - * @notice Get the table's value field names. - * @return fieldNames An array of strings with the names of value fields. - */ - function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](7); - fieldNames[0] = "locked"; - fieldNames[1] = "goldToken"; - fieldNames[2] = "characterToken"; - fieldNames[3] = "entropy"; - fieldNames[4] = "pythProvider"; - fieldNames[5] = "items"; - fieldNames[6] = "multicall"; - } - - /** - * @notice Register the table with its config. - */ - function register() internal { - StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Register the table with its config. - */ - function _register() internal { - StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); - } - - /** - * @notice Get locked. - */ - function getLocked() internal view returns (bool locked) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Get locked. - */ - function _getLocked() internal view returns (bool locked) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); - return (_toBool(uint8(bytes1(_blob)))); - } - - /** - * @notice Set locked. - */ - function setLocked(bool locked) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((locked)), _fieldLayout); - } - - /** - * @notice Set locked. - */ - function _setLocked(bool locked) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((locked)), _fieldLayout); - } - - /** - * @notice Get goldToken. - */ - function getGoldToken() internal view returns (address goldToken) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get goldToken. - */ - function _getGoldToken() internal view returns (address goldToken) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set goldToken. - */ - function setGoldToken(address goldToken) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((goldToken)), _fieldLayout); - } - - /** - * @notice Set goldToken. - */ - function _setGoldToken(address goldToken) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((goldToken)), _fieldLayout); - } - - /** - * @notice Get characterToken. - */ - function getCharacterToken() internal view returns (address characterToken) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get characterToken. - */ - function _getCharacterToken() internal view returns (address characterToken) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set characterToken. - */ - function setCharacterToken(address characterToken) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((characterToken)), _fieldLayout); - } - - /** - * @notice Set characterToken. - */ - function _setCharacterToken(address characterToken) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((characterToken)), _fieldLayout); - } - - /** - * @notice Get entropy. - */ - function getEntropy() internal view returns (address entropy) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get entropy. - */ - function _getEntropy() internal view returns (address entropy) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set entropy. - */ - function setEntropy(address entropy) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((entropy)), _fieldLayout); - } - - /** - * @notice Set entropy. - */ - function _setEntropy(address entropy) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((entropy)), _fieldLayout); - } - - /** - * @notice Get pythProvider. - */ - function getPythProvider() internal view returns (address pythProvider) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get pythProvider. - */ - function _getPythProvider() internal view returns (address pythProvider) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set pythProvider. - */ - function setPythProvider(address pythProvider) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((pythProvider)), _fieldLayout); - } - - /** - * @notice Set pythProvider. - */ - function _setPythProvider(address pythProvider) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((pythProvider)), _fieldLayout); - } - - /** - * @notice Get items. - */ - function getItems() internal view returns (address items) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get items. - */ - function _getItems() internal view returns (address items) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set items. - */ - function setItems(address items) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((items)), _fieldLayout); - } - - /** - * @notice Set items. - */ - function _setItems(address items) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((items)), _fieldLayout); - } - - /** - * @notice Get multicall. - */ - function getMulticall() internal view returns (address multicall) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get multicall. - */ - function _getMulticall() internal view returns (address multicall) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set multicall. - */ - function setMulticall(address multicall) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((multicall)), _fieldLayout); - } - - /** - * @notice Set multicall. - */ - function _setMulticall(address multicall) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((multicall)), _fieldLayout); - } - - /** - * @notice Get the full data. - */ - function get() internal view returns (UltimateDominionConfigData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](0); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreSwitch.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Get the full data. - */ - function _get() internal view returns (UltimateDominionConfigData memory _table) { - bytes32[] memory _keyTuple = new bytes32[](0); - - (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = - StoreCore.getRecord(_tableId, _keyTuple, _fieldLayout); - return decode(_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function set( - bool locked, - address goldToken, - address characterToken, - address entropy, - address pythProvider, - address items, - address multicall - ) internal { - bytes memory _staticData = - encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using individual values. - */ - function _set( - bool locked, - address goldToken, - address characterToken, - address entropy, - address pythProvider, - address items, - address multicall - ) internal { - bytes memory _staticData = - encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Set the full data using the data struct. - */ - function set(UltimateDominionConfigData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.locked, - _table.goldToken, - _table.characterToken, - _table.entropy, - _table.pythProvider, - _table.items, - _table.multicall - ); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Set the full data using the data struct. - */ - function _set(UltimateDominionConfigData memory _table) internal { - bytes memory _staticData = encodeStatic( - _table.locked, - _table.goldToken, - _table.characterToken, - _table.entropy, - _table.pythProvider, - _table.items, - _table.multicall - ); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); - } - - /** - * @notice Decode the tightly packed blob of static data using this table's field layout. - */ - function decodeStatic(bytes memory _blob) - internal - pure - returns ( - bool locked, - address goldToken, - address characterToken, - address entropy, - address pythProvider, - address items, - address multicall - ) - { - locked = (_toBool(uint8(Bytes.getBytes1(_blob, 0)))); - - goldToken = (address(Bytes.getBytes20(_blob, 1))); - - characterToken = (address(Bytes.getBytes20(_blob, 21))); - - entropy = (address(Bytes.getBytes20(_blob, 41))); - - pythProvider = (address(Bytes.getBytes20(_blob, 61))); - - items = (address(Bytes.getBytes20(_blob, 81))); - - multicall = (address(Bytes.getBytes20(_blob, 101))); - } - - /** - * @notice Decode the tightly packed blobs using this table's field layout. - * @param _staticData Tightly packed static fields. - * - * - */ - function decode(bytes memory _staticData, EncodedLengths, bytes memory) - internal - pure - returns (UltimateDominionConfigData memory _table) - { - ( - _table.locked, - _table.goldToken, - _table.characterToken, - _table.entropy, - _table.pythProvider, - _table.items, - _table.multicall - ) = decodeStatic(_staticData); - } - - /** - * @notice Delete all data for given keys. - */ - function deleteRecord() internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.deleteRecord(_tableId, _keyTuple); - } - - /** - * @notice Delete all data for given keys. - */ - function _deleteRecord() internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); - } - - /** - * @notice Tightly pack static (fixed length) data using this table's schema. - * @return The static data, encoded into a sequence of bytes. - */ - function encodeStatic( - bool locked, - address goldToken, - address characterToken, - address entropy, - address pythProvider, - address items, - address multicall - ) internal pure returns (bytes memory) { - return abi.encodePacked(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); - } - - /** - * @notice Encode all of a record's fields. - * @return The static (fixed length) data, encoded into a sequence of bytes. - * @return The lengths of the dynamic fields (packed into a single bytes32 value). - * @return The dynamic (variable length) data, encoded into a sequence of bytes. - */ - function encode( - bool locked, - address goldToken, - address characterToken, - address entropy, - address pythProvider, - address items, - address multicall - ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = - encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); - - EncodedLengths _encodedLengths; - bytes memory _dynamicData; - - return (_staticData, _encodedLengths, _dynamicData); - } - - /** - * @notice Encode keys as a bytes32 array using this table's field layout. - */ - function encodeKeyTuple() internal pure returns (bytes32[] memory) { - bytes32[] memory _keyTuple = new bytes32[](0); - - return _keyTuple; - } + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "UltimateDominion", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000556c74696d617465446f6d696e696f6e); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0079070001141414141414000000000000000000000000000000000000000000); + + // Hex-encoded key schema of () + Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bool, address, address, address, address, address, address) + Schema constant _valueSchema = Schema.wrap(0x0079070060616161616161000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](0); + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](7); + fieldNames[0] = "locked"; + fieldNames[1] = "goldToken"; + fieldNames[2] = "characterToken"; + fieldNames[3] = "entropy"; + fieldNames[4] = "pythProvider"; + fieldNames[5] = "items"; + fieldNames[6] = "multicall"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get locked. + */ + function getLocked() internal view returns (bool locked) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get locked. + */ + function _getLocked() internal view returns (bool locked) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Set locked. + */ + function setLocked(bool locked) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((locked)), _fieldLayout); + } + + /** + * @notice Set locked. + */ + function _setLocked(bool locked) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((locked)), _fieldLayout); + } + + /** + * @notice Get goldToken. + */ + function getGoldToken() internal view returns (address goldToken) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get goldToken. + */ + function _getGoldToken() internal view returns (address goldToken) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set goldToken. + */ + function setGoldToken(address goldToken) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((goldToken)), _fieldLayout); + } + + /** + * @notice Set goldToken. + */ + function _setGoldToken(address goldToken) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((goldToken)), _fieldLayout); + } + + /** + * @notice Get characterToken. + */ + function getCharacterToken() internal view returns (address characterToken) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get characterToken. + */ + function _getCharacterToken() internal view returns (address characterToken) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 2, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set characterToken. + */ + function setCharacterToken(address characterToken) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((characterToken)), _fieldLayout); + } + + /** + * @notice Set characterToken. + */ + function _setCharacterToken(address characterToken) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 2, abi.encodePacked((characterToken)), _fieldLayout); + } + + /** + * @notice Get entropy. + */ + function getEntropy() internal view returns (address entropy) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get entropy. + */ + function _getEntropy() internal view returns (address entropy) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 3, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set entropy. + */ + function setEntropy(address entropy) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((entropy)), _fieldLayout); + } + + /** + * @notice Set entropy. + */ + function _setEntropy(address entropy) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 3, abi.encodePacked((entropy)), _fieldLayout); + } + + /** + * @notice Get pythProvider. + */ + function getPythProvider() internal view returns (address pythProvider) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get pythProvider. + */ + function _getPythProvider() internal view returns (address pythProvider) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 4, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set pythProvider. + */ + function setPythProvider(address pythProvider) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((pythProvider)), _fieldLayout); + } + + /** + * @notice Set pythProvider. + */ + function _setPythProvider(address pythProvider) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 4, abi.encodePacked((pythProvider)), _fieldLayout); + } + + /** + * @notice Get items. + */ + function getItems() internal view returns (address items) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get items. + */ + function _getItems() internal view returns (address items) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 5, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set items. + */ + function setItems(address items) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((items)), _fieldLayout); + } + + /** + * @notice Set items. + */ + function _setItems(address items) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((items)), _fieldLayout); + } + + /** + * @notice Get multicall. + */ + function getMulticall() internal view returns (address multicall) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Get multicall. + */ + function _getMulticall() internal view returns (address multicall) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); + return (address(bytes20(_blob))); + } + + /** + * @notice Set multicall. + */ + function setMulticall(address multicall) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((multicall)), _fieldLayout); + } + + /** + * @notice Set multicall. + */ + function _setMulticall(address multicall) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((multicall)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get() internal view returns (UltimateDominionConfigData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](0); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get() internal view returns (UltimateDominionConfigData memory _table) { + bytes32[] memory _keyTuple = new bytes32[](0); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set( + bool locked, + address goldToken, + address characterToken, + address entropy, + address pythProvider, + address items, + address multicall + ) internal { + bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set( + bool locked, + address goldToken, + address characterToken, + address entropy, + address pythProvider, + address items, + address multicall + ) internal { + bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Set the full data using the data struct. + */ + function set(UltimateDominionConfigData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.locked, + _table.goldToken, + _table.characterToken, + _table.entropy, + _table.pythProvider, + _table.items, + _table.multicall + ); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using the data struct. + */ + function _set(UltimateDominionConfigData memory _table) internal { + bytes memory _staticData = encodeStatic( + _table.locked, + _table.goldToken, + _table.characterToken, + _table.entropy, + _table.pythProvider, + _table.items, + _table.multicall + ); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic( + bytes memory _blob + ) + internal + pure + returns ( + bool locked, + address goldToken, + address characterToken, + address entropy, + address pythProvider, + address items, + address multicall + ) + { + locked = (_toBool(uint8(Bytes.getBytes1(_blob, 0)))); + + goldToken = (address(Bytes.getBytes20(_blob, 1))); + + characterToken = (address(Bytes.getBytes20(_blob, 21))); + + entropy = (address(Bytes.getBytes20(_blob, 41))); + + pythProvider = (address(Bytes.getBytes20(_blob, 61))); + + items = (address(Bytes.getBytes20(_blob, 81))); + + multicall = (address(Bytes.getBytes20(_blob, 101))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode( + bytes memory _staticData, + EncodedLengths, + bytes memory + ) internal pure returns (UltimateDominionConfigData memory _table) { + ( + _table.locked, + _table.goldToken, + _table.characterToken, + _table.entropy, + _table.pythProvider, + _table.items, + _table.multicall + ) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord() internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord() internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic( + bool locked, + address goldToken, + address characterToken, + address entropy, + address pythProvider, + address items, + address multicall + ) internal pure returns (bytes memory) { + return abi.encodePacked(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode( + bool locked, + address goldToken, + address characterToken, + address entropy, + address pythProvider, + address items, + address multicall + ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple() internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](0); + + return _keyTuple; + } } /** @@ -581,7 +586,7 @@ library UltimateDominionConfig { * @return result The boolean value. */ function _toBool(uint8 value) pure returns (bool result) { - assembly { - result := value - } + assembly { + result := value + } } diff --git a/packages/contracts/src/codegen/world/IActionSystem.sol b/packages/contracts/src/codegen/world/IActionSystem.sol index 3f844d1f9..a8b250e62 100644 --- a/packages/contracts/src/codegen/world/IActionSystem.sol +++ b/packages/contracts/src/codegen/world/IActionSystem.sol @@ -3,7 +3,7 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import {ActionType} from "@codegen/common.sol"; +import { ActionType } from "@codegen/common.sol"; /** * @title IActionSystem @@ -11,9 +11,9 @@ import {ActionType} from "@codegen/common.sol"; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IActionSystem { - function UD__createAction(ActionType actionType, bytes memory actionStats) external returns (bytes32 actionId); + function UD__createAction(ActionType actionType, bytes memory actionStats) external returns (bytes32 actionId); - function UD__assignActionToCharacter(bytes32 characterId, bytes32 actionId) external; + function UD__assignActionToCharacter(bytes32 characterId, bytes32 actionId) external; - function UD__equipAction(bytes32 characterId, bytes32 actionId) external; + function UD__equipAction(bytes32 characterId, bytes32 actionId) external; } diff --git a/packages/contracts/src/codegen/world/ICharacterSystem.sol b/packages/contracts/src/codegen/world/ICharacterSystem.sol index 56be1c6f9..7672f9758 100644 --- a/packages/contracts/src/codegen/world/ICharacterSystem.sol +++ b/packages/contracts/src/codegen/world/ICharacterSystem.sol @@ -3,8 +3,8 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import {Classes} from "@codegen/common.sol"; -import {StatsData} from "@codegen/index.sol"; +import { Classes } from "@codegen/common.sol"; +import { StatsData } from "@codegen/index.sol"; /** * @title ICharacterSystem @@ -12,35 +12,37 @@ import {StatsData} from "@codegen/index.sol"; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface ICharacterSystem { - function UD__getName(bytes32 characterId) external view returns (bytes32 _name); + function UD__getName(bytes32 characterId) external view returns (bytes32 _name); - function UD__getClass(bytes32 characterId) external view returns (Classes _class); + function UD__getClass(bytes32 characterId) external view returns (Classes _class); - function UD__getPlayerEntityId(uint256 characterTokenId) external view returns (bytes32 characterId); + function UD__getPlayerEntityId(uint256 characterTokenId) external view returns (bytes32 characterId); - function UD__getCharacterTokenId(bytes32 characterId) external pure returns (uint256); + function UD__getCharacterTokenId(bytes32 characterId) external pure returns (uint256); - function UD__getOwnerAddress(bytes32 characterId) external pure returns (address); + function UD__getOwnerAddress(bytes32 characterId) external pure returns (address); - function UD__isValidCharacterId(bytes32 characterId) external view returns (bool); + function UD__isValidCharacterId(bytes32 characterId) external view returns (bool); - function UD__isValidOwner(bytes32 characterId, address owner) external view returns (bool); + function UD__isValidOwner(bytes32 characterId, address owner) external view returns (bool); - function UD__mintCharacter(address account, bytes32 name, string memory tokenUri) - external - returns (bytes32 characterId); + function UD__mintCharacter( + address account, + bytes32 name, + string memory tokenUri + ) external returns (bytes32 characterId); - function UD__rollStats(bytes32 userRandomNumber, bytes32 characterId, Classes class) external payable; + function UD__rollStats(bytes32 userRandomNumber, bytes32 characterId, Classes class) external payable; - function UD__enterGame(bytes32 characterId) external; + function UD__enterGame(bytes32 characterId) external; - function UD__getCurrentAvailableLevel(uint256 experience) external view returns (uint256 currentLevel); + function UD__getCurrentAvailableLevel(uint256 experience) external view returns (uint256 currentLevel); - function UD__updateTokenUri(bytes32 characterId, string memory tokenUri) external; + function UD__updateTokenUri(bytes32 characterId, string memory tokenUri) external; - function UD__getOwner(bytes32 characterId) external view returns (address); + function UD__getOwner(bytes32 characterId) external view returns (address); - function UD__getExperience(bytes32 characterId) external view returns (uint256); + function UD__getExperience(bytes32 characterId) external view returns (uint256); - function UD__getStats(bytes32 characterId) external view returns (StatsData memory); + function UD__getStats(bytes32 characterId) external view returns (StatsData memory); } diff --git a/packages/contracts/src/codegen/world/ICombatSystem.sol b/packages/contracts/src/codegen/world/ICombatSystem.sol index 7dc75219b..23c1c406e 100644 --- a/packages/contracts/src/codegen/world/ICombatSystem.sol +++ b/packages/contracts/src/codegen/world/ICombatSystem.sol @@ -3,9 +3,9 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import {EncounterType} from "@codegen/common.sol"; -import {Action, PhysicalAttackStats} from "@interfaces/Structs.sol"; -import {CombatEncounterData} from "@codegen/index.sol"; +import { EncounterType } from "@codegen/common.sol"; +import { Action, PhysicalAttackStats } from "@interfaces/Structs.sol"; +import { CombatEncounterData } from "@codegen/index.sol"; /** * @title ICombatSystem @@ -13,37 +13,43 @@ import {CombatEncounterData} from "@codegen/index.sol"; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface ICombatSystem { - function UD__createMatch(EncounterType encounterType, bytes32[] memory attackers, bytes32[] memory defenders) - external - returns (bytes32 encounterId); + function UD__createMatch( + EncounterType encounterType, + bytes32[] memory attackers, + bytes32[] memory defenders + ) external returns (bytes32 encounterId); - function UD__isValidPvE(bytes32[] memory attackers, bytes32[] memory defenders, uint16 x, uint16 y) - external - view - returns (bool _isValidPvE); + function UD__isValidPvE( + bytes32[] memory attackers, + bytes32[] memory defenders, + uint16 x, + uint16 y + ) external view returns (bool _isValidPvE); - function UD__endTurn(bytes32 encounterId, bytes32 playerId, Action[] memory actions) external payable; + function UD__endTurn(bytes32 encounterId, bytes32 playerId, Action[] memory actions) external payable; - function UD__isParticipant(address account, bytes32 encounterId) external view returns (bool _isParticipant); + function UD__isParticipant(address account, bytes32 encounterId) external view returns (bool _isParticipant); - function UD__isParticipant(address account, bytes32[] memory participants) - external - view - returns (bool _isParticipant); + function UD__isParticipant( + address account, + bytes32[] memory participants + ) external view returns (bool _isParticipant); - function UD__executeCombat(uint256 randomNumber, bytes32 encounterId, Action[] memory actions) external; + function UD__executeCombat(uint256 randomNumber, bytes32 encounterId, Action[] memory actions) external; - function UD___calculatePhysicalAttack( - PhysicalAttackStats memory attackStats, - bytes32 attackerId, - bytes32 defenderId, - uint256 weaponId, - uint256 randomNumber - ) external returns (int256 damage, bool hit, bool crit); + function UD___calculatePhysicalAttack( + PhysicalAttackStats memory attackStats, + bytes32 attackerId, + bytes32 defenderId, + uint256 weaponId, + uint256 randomNumber + ) external returns (int256 damage, bool hit, bool crit); - function UD__getEncounter(bytes32 encounterId) external view returns (CombatEncounterData memory _encounterData); + function UD__getEncounter(bytes32 encounterId) external view returns (CombatEncounterData memory _encounterData); - function UD___calculateMagicAttack() external; + function UD___calculateMagicAttack() external; - function UD__calculateGoldDrop(uint256 mobLevel, uint256 randomNumber) external returns (uint256 dropAmount); + function UD__calculateGoldDrop(uint256 mobLevel, uint256 randomNumber) external returns (uint256 dropAmount); + + function UD__calculateItemDrop(uint256 randomNumber, uint256 itemId) external returns (bool); } diff --git a/packages/contracts/src/codegen/world/IEquipmentSystem.sol b/packages/contracts/src/codegen/world/IEquipmentSystem.sol index bb5c57e47..3669ba117 100644 --- a/packages/contracts/src/codegen/world/IEquipmentSystem.sol +++ b/packages/contracts/src/codegen/world/IEquipmentSystem.sol @@ -3,7 +3,7 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import {AdjustedCombatStats, WeaponStats, ArmorStats} from "@interfaces/Structs.sol"; +import { AdjustedCombatStats, WeaponStats, ArmorStats } from "@interfaces/Structs.sol"; /** * @title IEquipmentSystem @@ -11,20 +11,17 @@ import {AdjustedCombatStats, WeaponStats, ArmorStats} from "@interfaces/Structs. * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IEquipmentSystem { - function UD__equipItems(bytes32 characterId, uint256[] memory itemIds) external; + function UD__equipItems(bytes32 characterId, uint256[] memory itemIds) external; - function UD__isEquipped(bytes32 characterId, uint256 itemId) external view returns (bool _isEquipped); + function UD__isEquipped(bytes32 characterId, uint256 itemId) external view returns (bool _isEquipped); - function UD__checkRequirements(bytes32 characterId, uint256 itemId) external view returns (bool canUse); + function UD__checkRequirements(bytes32 characterId, uint256 itemId) external view returns (bool canUse); - function UD__unequipItem(bytes32 characterId, uint256 itemId) external returns (bool success); + function UD__unequipItem(bytes32 characterId, uint256 itemId) external returns (bool success); - function UD__applyEquipmentBonuses(bytes32 entityId) - external - view - returns (AdjustedCombatStats memory modifiedStats); + function UD__applyEquipmentBonuses(bytes32 entityId) external view returns (AdjustedCombatStats memory modifiedStats); - function UD__getWeaponStats(uint256 itemId) external view returns (WeaponStats memory _weaponStats); + function UD__getWeaponStats(uint256 itemId) external view returns (WeaponStats memory _weaponStats); - function UD__getArmorStats(uint256 itemId) external view returns (ArmorStats memory _ArmorStats); + function UD__getArmorStats(uint256 itemId) external view returns (ArmorStats memory _ArmorStats); } diff --git a/packages/contracts/src/codegen/world/IItemsSystem.sol b/packages/contracts/src/codegen/world/IItemsSystem.sol index 7d5fe5138..571a85b18 100644 --- a/packages/contracts/src/codegen/world/IItemsSystem.sol +++ b/packages/contracts/src/codegen/world/IItemsSystem.sol @@ -3,8 +3,8 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import {ItemType, Classes} from "@codegen/common.sol"; -import {StarterItemsData} from "@codegen/index.sol"; +import { ItemType, Classes } from "@codegen/common.sol"; +import { StarterItemsData } from "@codegen/index.sol"; /** * @title IItemsSystem @@ -12,33 +12,33 @@ import {StarterItemsData} from "@codegen/index.sol"; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IItemsSystem { - function UD__createItem( - ItemType itemType, - uint256 supply, - uint256 dropChance, - bytes memory stats, - string memory itemMetadataURI - ) external returns (uint256); + function UD__createItem( + ItemType itemType, + uint256 supply, + uint256 dropChance, + bytes memory stats, + string memory itemMetadataURI + ) external returns (uint256); - function UD__createItems( - ItemType[] memory itemTypes, - uint256[] memory supply, - uint256[] memory dropChances, - bytes[] memory stats, - string[] memory itemMetadataURIs - ) external; + function UD__createItems( + ItemType[] memory itemTypes, + uint256[] memory supply, + uint256[] memory dropChances, + bytes[] memory stats, + string[] memory itemMetadataURIs + ) external; - function UD__getTotalSupply(uint256 tokenId) external view returns (uint256 _supply); + function UD__getTotalSupply(uint256 tokenId) external view returns (uint256 _supply); - function UD__getStarterItems(Classes class) external view returns (StarterItemsData memory data); + function UD__getStarterItems(Classes class) external view returns (StarterItemsData memory data); - function UD__setTokenUri(uint256 tokenId, string memory tokenUri) external; + function UD__setTokenUri(uint256 tokenId, string memory tokenUri) external; - function UD__getItemType(uint256 itemId) external view returns (ItemType); + function UD__getItemType(uint256 itemId) external view returns (ItemType); - function UD__getCurrentItemsCounter() external view returns (uint256); + function UD__getCurrentItemsCounter() external view returns (uint256); - function UD__setStarterItems(Classes class, uint256[] memory itemIds, uint256[] memory amounts) external; + function UD__setStarterItems(Classes class, uint256[] memory itemIds, uint256[] memory amounts) external; - function UD__isItemOwner(uint256 itemId, address account) external view returns (bool); + function UD__isItemOwner(uint256 itemId, address account) external view returns (bool); } diff --git a/packages/contracts/src/codegen/world/ILootManagerSystem.sol b/packages/contracts/src/codegen/world/ILootManagerSystem.sol new file mode 100644 index 000000000..1220f1642 --- /dev/null +++ b/packages/contracts/src/codegen/world/ILootManagerSystem.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.24; + +/* Autogenerated file. Do not edit manually. */ + +/** + * @title ILootManagerSystem + * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz) + * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. + */ +interface ILootManagerSystem { + function UD__issueStarterItems(bytes32 characterId) external; + + function UD__dropGold(bytes32 characterId, uint256 amount) external; + + function UD__dropItem(uint256 itemId, uint256 amount, bytes32 characterId) external; + + function UD__dropItems(uint256[] memory itemIds, uint256[] memory amounts, bytes32[] memory characterIds) external; +} diff --git a/packages/contracts/src/codegen/world/IMapSystem.sol b/packages/contracts/src/codegen/world/IMapSystem.sol index aaac3781b..6d44cd167 100644 --- a/packages/contracts/src/codegen/world/IMapSystem.sol +++ b/packages/contracts/src/codegen/world/IMapSystem.sol @@ -9,14 +9,11 @@ pragma solidity >=0.8.24; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IMapSystem { - function UD__move(bytes32 entityId, uint16 x, uint16 y) external; + function UD__move(bytes32 entityId, uint16 x, uint16 y) external; - function UD__spawn(bytes32 entityId) external; + function UD__spawn(bytes32 entityId) external; - function UD__getEntitiesAtPosition(uint16 x, uint16 y) - external - view - returns (bytes32[] memory entitiesAtPosition); + function UD__getEntitiesAtPosition(uint16 x, uint16 y) external view returns (bytes32[] memory entitiesAtPosition); - function UD__isAtPosition(bytes32 entityId, uint16 x, uint16 y) external view returns (bool _isAtPosition); + function UD__isAtPosition(bytes32 entityId, uint16 x, uint16 y) external view returns (bool _isAtPosition); } diff --git a/packages/contracts/src/codegen/world/IMobSystem.sol b/packages/contracts/src/codegen/world/IMobSystem.sol index a71ac5587..05c23d63f 100644 --- a/packages/contracts/src/codegen/world/IMobSystem.sol +++ b/packages/contracts/src/codegen/world/IMobSystem.sol @@ -3,9 +3,9 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import {MobType} from "@codegen/common.sol"; -import {NPCStats, MonsterStats} from "@interfaces/Structs.sol"; -import {MobsData} from "@tables/Mobs.sol"; +import { MobType } from "@codegen/common.sol"; +import { NPCStats, MonsterStats } from "@interfaces/Structs.sol"; +import { MobsData } from "@tables/Mobs.sol"; /** * @title IMobSystem @@ -13,32 +13,29 @@ import {MobsData} from "@tables/Mobs.sol"; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IMobSystem { - function UD__createMob(MobType mobType, bytes memory stats, string memory mobMetadataUri) - external - returns (uint256); + function UD__createMob(MobType mobType, bytes memory stats, string memory mobMetadataUri) external returns (uint256); - function UD__createMobs(MobType[] memory mobTypes, bytes[] memory stats, string[] memory mobMetadataURIs) - external; + function UD__createMobs(MobType[] memory mobTypes, bytes[] memory stats, string[] memory mobMetadataURIs) external; - function UD__spawnMob(uint256 mobId, uint16 x, uint16 y) external returns (bytes32 entityId); + function UD__spawnMob(uint256 mobId, uint16 x, uint16 y) external returns (bytes32 entityId); - function UD__getMobId(bytes32 entityId) external pure returns (uint256); + function UD__getMobId(bytes32 entityId) external pure returns (uint256); - function UD__getMobPosition(bytes32 entityId) external pure returns (uint16 x, uint16 y); + function UD__getMobPosition(bytes32 entityId) external pure returns (uint16 x, uint16 y); - function UD__getSpawnCounter(bytes32 entityId) external pure returns (uint256); + function UD__getSpawnCounter(bytes32 entityId) external pure returns (uint256); - function UD__getNpcStats(uint256 mobId) external view returns (NPCStats memory); + function UD__getNpcStats(uint256 mobId) external view returns (NPCStats memory); - function UD__getNpcStats(bytes32 entityId) external view returns (NPCStats memory); + function UD__getNpcStats(bytes32 entityId) external view returns (NPCStats memory); - function UD__getMonsterStats(uint256 mobId) external view returns (MonsterStats memory); + function UD__getMonsterStats(uint256 mobId) external view returns (MonsterStats memory); - function UD__getMonsterStats(bytes32 entityId) external view returns (MonsterStats memory); + function UD__getMonsterStats(bytes32 entityId) external view returns (MonsterStats memory); - function UD__isValidMob(bytes32 entityId) external view returns (bool); + function UD__isValidMob(bytes32 entityId) external view returns (bool); - function UD__getMob(uint256 mobId) external view returns (MobsData memory); + function UD__getMob(uint256 mobId) external view returns (MobsData memory); - function UD__getMob(bytes32 entityId) external view returns (MobsData memory); + function UD__getMob(bytes32 entityId) external view returns (MobsData memory); } diff --git a/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol b/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol index b922891a0..141db9fed 100644 --- a/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol +++ b/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol @@ -9,17 +9,17 @@ pragma solidity >=0.8.24; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IUltimateDominionConfigSystem { - function UD__getCharacterToken() external view returns (address _characterToken); + function UD__getCharacterToken() external view returns (address _characterToken); - function UD__getGoldToken() external view returns (address _goldToken); + function UD__getGoldToken() external view returns (address _goldToken); - function UD__getEntropy() external view returns (address _entropy); + function UD__getEntropy() external view returns (address _entropy); - function UD__getPythProvider() external view returns (address _provider); + function UD__getPythProvider() external view returns (address _provider); - function UD__getItemsContract() external view returns (address _erc1155); + function UD__getItemsContract() external view returns (address _erc1155); - function UD__getMulticallContract() external view returns (address _multicall); + function UD__getMulticallContract() external view returns (address _multicall); - function UD__getLootManagerSystem() external view returns (address _lootManager); + function UD__getLootManagerSystem() external view returns (address _lootManager); } diff --git a/packages/contracts/src/codegen/world/IWorld.sol b/packages/contracts/src/codegen/world/IWorld.sol index 671a5ada9..f54982249 100644 --- a/packages/contracts/src/codegen/world/IWorld.sol +++ b/packages/contracts/src/codegen/world/IWorld.sol @@ -3,17 +3,17 @@ pragma solidity >=0.8.24; /* Autogenerated file. Do not edit manually. */ -import {IBaseWorld} from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol"; +import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol"; -import {IActionSystem} from "./IActionSystem.sol"; -import {ICharacterSystem} from "./ICharacterSystem.sol"; -import {ICombatSystem} from "./ICombatSystem.sol"; -import {IEquipmentSystem} from "./IEquipmentSystem.sol"; -import {IItemsSystem} from "./IItemsSystem.sol"; -import {ILootManagerSystem} from "./ILootManagerSystem.sol"; -import {IMapSystem} from "./IMapSystem.sol"; -import {IMobSystem} from "./IMobSystem.sol"; -import {IUltimateDominionConfigSystem} from "./IUltimateDominionConfigSystem.sol"; +import { IActionSystem } from "./IActionSystem.sol"; +import { ICharacterSystem } from "./ICharacterSystem.sol"; +import { ICombatSystem } from "./ICombatSystem.sol"; +import { IEquipmentSystem } from "./IEquipmentSystem.sol"; +import { IItemsSystem } from "./IItemsSystem.sol"; +import { ILootManagerSystem } from "./ILootManagerSystem.sol"; +import { IMapSystem } from "./IMapSystem.sol"; +import { IMobSystem } from "./IMobSystem.sol"; +import { IUltimateDominionConfigSystem } from "./IUltimateDominionConfigSystem.sol"; /** * @title IWorld @@ -23,14 +23,14 @@ import {IUltimateDominionConfigSystem} from "./IUltimateDominionConfigSystem.sol * @dev This is an autogenerated file; do not edit manually. */ interface IWorld is - IBaseWorld, - IActionSystem, - ICharacterSystem, - ICombatSystem, - IEquipmentSystem, - IItemsSystem, - ILootManagerSystem, - IMapSystem, - IMobSystem, - IUltimateDominionConfigSystem + IBaseWorld, + IActionSystem, + ICharacterSystem, + ICombatSystem, + IEquipmentSystem, + IItemsSystem, + ILootManagerSystem, + IMapSystem, + IMobSystem, + IUltimateDominionConfigSystem {} diff --git a/packages/contracts/src/systems/CombatSystem.sol b/packages/contracts/src/systems/CombatSystem.sol index b86212d77..4871a5008 100644 --- a/packages/contracts/src/systems/CombatSystem.sol +++ b/packages/contracts/src/systems/CombatSystem.sol @@ -349,6 +349,7 @@ contract CombatSystem is System { if (statsTemp.currentHp <= int256(0)) { expDrop += statsTemp.experience; goldDrop += calculateGoldDrop(statsTemp.level, randomNumber); + MatchEntity.setEncounterId(encounterData.defenders[i], bytes32(0)); } } // drop gold reward calculated from the level of mob to player journey wallet (can mint tokens when he returns to 0,0). @@ -363,6 +364,7 @@ contract CombatSystem is System { statsTemp.experience += expDrop / livingAttackers; IWorld(_world()).UD__dropGold(entityIdTemp, (goldDrop / livingAttackers)); Stats.set(entityIdTemp, statsTemp); + MatchEntity.setEncounterId(encounterData.attackers[i], bytes32(0)); } } } @@ -373,4 +375,6 @@ contract CombatSystem is System { dropAmount = randomNumber % (BASE_GOLD_DROP * mobLevel); } + + function calculateItemDrop(uint256 randomNumber, uint256 itemId) public returns (bool) {} } diff --git a/packages/contracts/src/systems/LootManagerSystem.sol b/packages/contracts/src/systems/LootManagerSystem.sol new file mode 100644 index 000000000..12b3620a1 --- /dev/null +++ b/packages/contracts/src/systems/LootManagerSystem.sol @@ -0,0 +1,90 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.24; + +import {System} from "@latticexyz/world/src/System.sol"; +import {Systems} from "@latticexyz/world/src/codegen/tables/Systems.sol"; +import {IERC20System} from "@latticexyz/world-modules/src/interfaces/IERC20System.sol"; +import {IWorld} from "@world/IWorld.sol"; +import {IERC1155System} from "@erc1155/IERC1155System.sol"; +import {IERC1155Receiver} from "@erc1155/IERC1155Receiver.sol"; +import { + UltimateDominionConfig, + Items, + ItemsData, + Counters, + StarterItems, + StarterItemsData, + Characters, + CharactersData, + Stats, + StatsData, + CharacterEquipment, + CharacterEquipmentData +} from "@codegen/index.sol"; +import {ItemType, Classes} from "@codegen/common.sol"; +import {AccessControlLib} from "@latticexyz/world-modules/src/utils/AccessControlLib.sol"; +import {SystemRegistry} from "@latticexyz/world/src/codegen/tables/SystemRegistry.sol"; +import { + _erc1155SystemId, + _characterSystemId, + _requireOwner, + _requireAccess, + _requireAccess, + _lootManagerSystemId +} from "../utils.sol"; +import {ITEMS_NAMESPACE, WORLD_NAMESPACE} from "../../constants.sol"; +import {WeaponStats, ArmorStats} from "@interfaces/Structs.sol"; +import {TotalSupply} from "@erc1155/tables/TotalSupply.sol"; +import {Owners} from "@erc1155/tables/Owners.sol"; +import {ERC1155URIStorage} from "@erc1155/tables/ERC1155URIStorage.sol"; +import {ERC1155MetadataURI} from "@erc1155/tables/ERC1155MetadataURI.sol"; +import {ERC1155System} from "@erc1155/ERC1155System.sol"; +import { + _metadataTableId, + _erc1155URIStorageTableId, + _totalSupplyTableId, + _operatorApprovalTableId, + _ownersTableId +} from "@erc1155/utils.sol"; +import "forge-std/console2.sol"; + +contract LootManagerSystem is System { + // all items and gold will be managed by this system. ownership of both contracts will be on this system and permissions + // distribute will be managed here. + + function _goldToken() internal view returns (IERC20System goldToken) { + goldToken = IERC20System(UltimateDominionConfig.getGoldToken()); + } + + function issueStarterItems(bytes32 characterId) public { + require(_msgSender() == Systems.getSystem(_characterSystemId(WORLD_NAMESPACE)), "ITEMS: Invalid System"); + StarterItemsData memory starterItems = IWorld(_world()).UD__getStarterItems(Stats.getClass(characterId)); + + address owner = IWorld(_world()).UD__getOwner(characterId); + + for (uint256 i; i < starterItems.itemIds.length; i++) { + _items().safeTransferFrom(address(this), owner, starterItems.itemIds[i], starterItems.amounts[i], ""); + } + } + + function dropGold(bytes32 characterId, uint256 amount) public { + AccessControlLib.requireAccess(_lootManagerSystemId(WORLD_NAMESPACE), _msgSender()); + _goldToken().mint(IWorld(_world()).UD__getOwner(characterId), amount); + } + + function dropItem(uint256 itemId, uint256 amount, bytes32 characterId) public { + AccessControlLib.requireAccess(_lootManagerSystemId(WORLD_NAMESPACE), _msgSender()); + address to = IWorld(_world()).UD__getOwner(characterId); + _items().transferFrom(address(this), to, itemId, amount); + } + + function dropItems(uint256[] memory itemIds, uint256[] memory amounts, bytes32[] memory characterIds) public { + for (uint256 i; i < itemIds.length; i++) { + dropItem(itemIds[i], amounts[i], characterIds[i]); + } + } + + function _items() internal view returns (IERC1155System _items) { + _items = IERC1155System(UltimateDominionConfig.getItems()); + } +} From fd389f90c4036a7902b8565830169c7c34343016 Mon Sep 17 00:00:00 2001 From: MrDeadCe11 Date: Tue, 16 Jul 2024 18:17:39 -0500 Subject: [PATCH 7/8] fixed multicall error --- .../CharacterSystem.sol/CharacterSystem.json | 2433 +---- .../contracts/out/IWorld.sol/IWorld.abi.json | 6 +- .../out/IWorld.sol/IWorld.abi.json.d.ts | 6 +- packages/contracts/out/IWorld.sol/IWorld.json | 8904 +---------------- .../out/MapSystem.sol/MapSystem.json | 1784 +--- packages/contracts/script/PostDeploy.s.sol | 6 - .../codegen/tables/UltimateDominionConfig.sol | 82 +- .../src/codegen/world/ICombatSystem.sol | 2 +- .../world/IUltimateDominionConfigSystem.sol | 14 +- .../contracts/src/systems/CombatSystem.sol | 11 +- .../src/systems/LootManagerSystem.sol | 15 +- .../systems/UltimateDominionConfigSystem.sol | 39 +- packages/contracts/worlds.json | 4 +- 13 files changed, 61 insertions(+), 13245 deletions(-) diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json index 2a94c0f1d..01c9b41a5 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json @@ -1,2432 +1 @@ -{ - "abi": [ - { - "type": "function", - "name": "_msgSender", - "inputs": [], - "outputs": [ - { - "name": "sender", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "_msgValue", - "inputs": [], - "outputs": [ - { - "name": "value", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "_world", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "enterGame", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "getCharacterTokenId", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "getClass", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "_class", - "type": "uint8", - "internalType": "enum Classes" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getCurrentAvailableLevel", - "inputs": [ - { - "name": "experience", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "currentLevel", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getExperience", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getName", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "_name", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getOwner", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getOwnerAddress", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "getPlayerEntityId", - "inputs": [ - { - "name": "characterTokenId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getStats", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "tuple", - "internalType": "struct StatsData", - "components": [ - { - "name": "strength", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "agility", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "class", - "type": "uint8", - "internalType": "enum Classes" - }, - { - "name": "intelligence", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "baseHitPoints", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "currentHp", - "type": "int256", - "internalType": "int256" - }, - { - "name": "experience", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "level", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "isValidCharacterId", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "isValidOwner", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "owner", - "type": "address", - "internalType": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "mintCharacter", - "inputs": [ - { - "name": "account", - "type": "address", - "internalType": "address" - }, - { - "name": "name", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "tokenUri", - "type": "string", - "internalType": "string" - } - ], - "outputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "rollStats", - "inputs": [ - { - "name": "userRandomNumber", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "class", - "type": "uint8", - "internalType": "enum Classes" - } - ], - "outputs": [], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "supportsInterface", - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4", - "internalType": "bytes4" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "updateTokenUri", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "tokenUri", - "type": "string", - "internalType": "string" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "event", - "name": "Store_SetRecord", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "indexed": true, - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false, - "internalType": "bytes32[]" - }, - { - "name": "staticData", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - }, - { - "name": "encodedLengths", - "type": "bytes32", - "indexed": false, - "internalType": "EncodedLengths" - }, - { - "name": "dynamicData", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Store_SpliceDynamicData", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "indexed": true, - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false, - "internalType": "bytes32[]" - }, - { - "name": "dynamicFieldIndex", - "type": "uint8", - "indexed": false, - "internalType": "uint8" - }, - { - "name": "start", - "type": "uint48", - "indexed": false, - "internalType": "uint48" - }, - { - "name": "deleteCount", - "type": "uint40", - "indexed": false, - "internalType": "uint40" - }, - { - "name": "encodedLengths", - "type": "bytes32", - "indexed": false, - "internalType": "EncodedLengths" - }, - { - "name": "data", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Store_SpliceStaticData", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "indexed": true, - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false, - "internalType": "bytes32[]" - }, - { - "name": "start", - "type": "uint48", - "indexed": false, - "internalType": "uint48" - }, - { - "name": "data", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - }, - { - "type": "error", - "name": "EncodedLengths_InvalidLength", - "inputs": [ - { - "name": "length", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Slice_OutOfBounds", - "inputs": [ - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "start", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "end", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_IndexOutOfBounds", - "inputs": [ - { - "name": "length", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "accessedIndex", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidResourceType", - "inputs": [ - { - "name": "expected", - "type": "bytes2", - "internalType": "bytes2" - }, - { - "name": "resourceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "resourceIdString", - "type": "string", - "internalType": "string" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidSplice", - "inputs": [ - { - "name": "startWithinField", - "type": "uint40", - "internalType": "uint40" - }, - { - "name": "deleteCount", - "type": "uint40", - "internalType": "uint40" - }, - { - "name": "fieldLength", - "type": "uint40", - "internalType": "uint40" - } - ] - }, - { - "type": "error", - "name": "World_AccessDenied", - "inputs": [ - { - "name": "resource", - "type": "string", - "internalType": "string" - }, - { - "name": "caller", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "error", - "name": "World_FunctionSelectorNotFound", - "inputs": [ - { - "name": "functionSelector", - "type": "bytes4", - "internalType": "bytes4" - } - ] - }, - { - "type": "error", - "name": "World_ResourceNotFound", - "inputs": [ - { - "name": "resourceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "resourceIdString", - "type": "string", - "internalType": "string" - } - ] - } - ], - "bytecode": { - "object": "0x608060405234801561001057600080fd5b5061497d806100206000396000f3fe6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea2646970667358221220051bc834708e24c962533671ce7dfc8684d60a0ba120aa18f2c998d413db9df964736f6c63430008180033", - "sourceMap": "1812:6250:212:-:0;;;;;;;;;;;;;;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e79070001141414141414000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea2646970667358221220051bc834708e24c962533671ce7dfc8684d60a0ba120aa18f2c998d413db9df964736f6c63430008180033", - "sourceMap": "1812:6250:212:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:144;;;;;;;;;;-1:-1:-1;2973:144:212;;;;;:::i;:::-;3106:2;3082:26;;2973:144;;;;-1:-1:-1;;;;;363:55:230;;;345:74;;333:2;318:18;2973:144:212;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:230;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:230;7936:124:212;;;;;;;;;;-1:-1:-1;7936:124:212;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;4111:837:212:-;;;;;;;;;;-1:-1:-1;4111:837:212;;;;;:::i;:::-;;:::i;:::-;;;4284:25:230;;;4272:2;4257:18;4111:837:212;4138:177:230;6106:492:212;;;;;;;;;;-1:-1:-1;6106:492:212;;;;;:::i;:::-;;:::i;1989:129::-;;;;;;;;;;-1:-1:-1;1989:129:212;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1853:130:212;;;;;;;;;;-1:-1:-1;1853:130:212;;;;;:::i;:::-;;:::i;3123:413::-;;;;;;;;;;-1:-1:-1;3123:413:212;;;;;:::i;:::-;;:::i;4954:545::-;;;;;;:::i;:::-;;:::i;:::-;;2460:266;;;;;;;;;;-1:-1:-1;2460:266:212;;;;;:::i;:::-;;:::i;3542:212::-;;;;;;;;;;-1:-1:-1;3542:212:212;;;;;:::i;:::-;;:::i;6604:219::-;;;;;;;;;;-1:-1:-1;6604:219:212;;;;;:::i;:::-;;:::i;5505:595::-;;;;;;;;;;-1:-1:-1;5505:595:212;;;;;:::i;:::-;;:::i;7669:125::-;;;;;;;;;;-1:-1:-1;7669:125:212;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7800:130:212:-;;;;;;;;;;-1:-1:-1;7800:130:212;;;;;:::i;:::-;;:::i;2732:143::-;;;;;;;;;;-1:-1:-1;2732:143:212;;;;;:::i;:::-;2830:37;;;2732:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7936:124:212:-;7996:16;;:::i;:::-;8031:22;8041:11;8031:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;4111:837:212:-;4221:19;4256:24;4283:28;:26;:28::i;:::-;4256:55;-1:-1:-1;4348:16:212;4329:35;;4321:83;;;;-1:-1:-1;;;4321:83:212;;6255:2:230;4321:83:212;;;6237:21:230;6294:2;6274:18;;;6267:30;6333:34;6313:18;;;6306:62;6404:5;6384:18;;;6377:33;6427:19;;4321:83:212;;;;;;;;;4421:8;:6;:8::i;:::-;-1:-1:-1;;;;;4414:21:212;;4449:37;4465:20;4449:15;:37::i;:::-;4488:65;;-1:-1:-1;;;;;6649:55:230;;4488:65:212;;;6631:74:230;6721:18;;;6714:34;;;6604:18;;4488:65:212;;;-1:-1:-1;;4488:65:212;;;;;;;;;;;;;;;;;;;;4414:149;;4488:65;4414:149;;;;;;;;;4488:65;4414:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4414:149:212;;;;;;;;;;;;:::i;:::-;;4587:35;4605:16;4587:17;:35::i;:::-;4573:49;;4632:41;4652:11;4665:7;4632:19;:41::i;:::-;4683:52;4705:11;4718:16;4683:21;:52::i;:::-;4754:25;4774:4;4754:19;:25::i;:::-;4753:26;4745:58;;;;-1:-1:-1;;;4745:58:212;;8662:2:230;4745:58:212;;;8644:21:230;8701:2;8681:18;;;8674:30;8740:21;8720:18;;;8713:49;8779:18;;4745:58:212;8460:343:230;4745:58:212;4813:31;4833:4;4839;4813:19;:31::i;:::-;4854:37;4873:11;4886:4;4854:18;:37::i;:::-;4901:40;4914:16;4932:8;4901:12;:40::i;:::-;4246:702;4111:837;;;;;:::o;6106:492::-;6181:20;6231:14;6242:2;6231:10;:14::i;:::-;6217:10;:28;6213:379;;-1:-1:-1;6276:2:212;6106:492;;;:::o;6213:379::-;6314:9;6309:273;6329:2;6325:1;:6;6309:273;;;6373:10;6356:13;6367:1;6356:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;6407:10:212;6387:17;6398:5;:1;6402;6398:5;:::i;:::-;6387:10;:17::i;:::-;:30;6356:61;6352:155;;;6456:5;:1;6460;6456:5;:::i;:::-;6441:20;;6483:5;;6352:155;6546:3;;;;:::i;:::-;;;;6309:273;;;;6106:492;;;:::o;1989:129::-;2049:14;2084:27;2099:11;2084:14;:27::i;1853:130::-;1912:13;1945:31;1964:11;1945:18;:31::i;3123:413::-;3193:4;3209:20;3232:28;3248:11;3106:2;3082:26;;2973:144;3232:28;3209:51;-1:-1:-1;2830:37:212;;;3270:15;3359:17;:15;:17::i;:::-;-1:-1:-1;;;;;3359:25:212;;3385:7;3359:34;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;3359:34:212;;;;;;;;;;;;;;;;;;;-1:-1:-1;3359:34:212;;;;;;;;-1:-1:-1;;3359:34:212;;;;;;;;;;;;:::i;:::-;;;3355:135;;;3436:17;:15;:17::i;:::-;-1:-1:-1;;;;;3436:25:212;;3462:7;3436:34;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;3436:34:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3426:44;;3394:87;3355:135;3517:12;-1:-1:-1;;;;;3506:23:212;:7;-1:-1:-1;;;;;3506:23:212;;3499:30;;;;;3123:413;;;:::o;4954:545::-;5069:33;5090:11;5069:20;:33::i;:::-;5068:34;5060:90;;;;-1:-1:-1;;;5060:90:212;;9785:2:230;5060:90:212;;;9767:21:230;9824:2;9804:18;;;9797:30;9863:34;9843:18;;;9836:62;9934:13;9914:18;;;9907:41;9965:19;;5060:90:212;9583:407:230;5060:90:212;5168:21;5177:11;5168:8;:21::i;:::-;5160:53;;;;-1:-1:-1;;;5160:53:212;;10197:2:230;5160:53:212;;;10179:21:230;10236:2;10216:18;;;10209:30;10275:21;10255:18;;;10248:49;10314:18;;5160:53:212;9995:343:230;5160:53:212;5223:26;5291:34;5306:11;5319:5;5291:14;:34::i;:::-;5382:110;5435:16;5453:11;5477;5466:23;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;5466:23:212;;;;-1:-1:-1;;5466:23:212;;;;;;;;;;5400:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5400:91:212;;;;;;;;;;;;;;;;;;;;5382:17;:110::i;:::-;;5050:449;4954:545;;;:::o;2460:266::-;2534:19;2565:20;2588:17;:15;:17::i;:::-;-1:-1:-1;;;;;2588:25:212;;2614:16;2588:43;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;2588:43:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2697:2;2663:36;-1:-1:-1;;2663:36:212;:55;;;;;;-1:-1:-1;;2460:266:212:o;3542:212::-;3621:4;3644:31;3663:11;3644:18;:31::i;:::-;:103;;;;;3742:5;-1:-1:-1;;;;;3679:68:212;:17;:15;:17::i;:::-;:59;;;;;2830:37;;;3679:59;;;4284:25:230;-1:-1:-1;;;;;3679:25:212;;;;;;;4257:18:230;;3679:59:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3679:68:212;;3644:103;3637:110;3542:212;-1:-1:-1;;;3542:212:212:o;6604:219::-;6698:21;6707:11;6698:8;:21::i;:::-;6690:60;;;;-1:-1:-1;;;6690:60:212;;10974:2:230;6690:60:212;;;10956:21:230;11013:2;10993:18;;;10986:30;11052:28;11032:18;;;11025:56;11098:18;;6690:60:212;10772:350:230;6690:60:212;6760:56;2830:37;;;6807:8;6760:12;:56::i;:::-;6604:219;;:::o;5505:595::-;5570:21;5579:11;5570:8;:21::i;:::-;5562:52;;;;-1:-1:-1;;;5562:52:212;;11329:2:230;5562:52:212;;;11311:21:230;11368:2;11348:18;;;11341:30;11407:20;11387:18;;;11380:48;11445:18;;5562:52:212;11127:342:230;5562:52:212;5633:33;5654:11;5633:20;:33::i;:::-;5632:34;5624:72;;;;-1:-1:-1;;;5624:72:212;;11676:2:230;5624:72:212;;;11658:21:230;11715:2;11695:18;;;11688:30;11754:27;11734:18;;;11727:55;11799:18;;5624:72:212;11474:349:230;5624:72:212;5706:26;5735:22;5745:11;5735:9;:22::i;:::-;5785:1;5767:15;;;:19;5825:23;;;;5796:19;;;:53;5706:51;-1:-1:-1;5859:33:212;5869:11;5706:51;5859:9;:33::i;:::-;5909:8;:6;:8::i;:::-;5902:51;;;;;;;;12028:25:230;;;5945:7:212;12069:18:230;;;12062:34;-1:-1:-1;;;;;5902:29:212;;;;;;;12001:18:230;;5902:51:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:8;:6;:8::i;:::-;-1:-1:-1;;;;;5993:38:212;;6032:11;5993:51;;;;;;;;;;;;;4284:25:230;;4272:2;4257:18;;4138:177;5993:51:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6054:39;6075:11;6088:4;6054:20;:39::i;7669:125::-;7729:7;7755:32;7775:11;7755:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7800:130:212:-;7865:7;7891:32;7911:11;7891:19;:32::i;13270:402:195:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:195;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:195:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;7003:347:212:-;7059:7;7078:25;7106:42;:40;:42::i;:::-;7078:70;;7158:24;7185:50;7213:17;7233:1;7185:19;:50::i;:::-;:54;;7238:1;7185:54;:::i;:::-;7158:81;;7249:61;7269:17;7288:1;7292:16;7249:19;:61::i;1157:186:221:-;1215:10;1240:100;1275:15;1303:9;1320:18;1240:25;:100::i;4730:249:179:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:179;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;12445:2:230;12441:15;;;;-1:-1:-1;;12437:88:230;12425:101;;12551:2;12542:12;;12296:264;4934:25:179;;;;-1:-1:-1;;4934:25:179;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:179;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;2594:287:190;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:190;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:190:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:190;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12903:14:230;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4085:25:190;;;;-1:-1:-1;;4085:25:190;;;;;;;;;1198:66;4034:26;:91::i;5941:246:179:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:179;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;6829:168:212;6911:79;6932:38;6949:20;6932:16;:38::i;:::-;6972:7;6981:8;6911:20;:79::i;3297:296:184:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:184;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:184;:64::i;5624:288:195:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:195;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:195;;;;5878:29;;;;;;;;:::i;5306:279:179:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:179;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2279:175:212:-;2329:30;2404:42;:40;:42::i;6512:295:179:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:179;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;7496:167:212:-;7558:4;7597:17;:15;:17::i;:::-;:59;;;;;2830:37;;;7597:59;;;4284:25:230;-1:-1:-1;;;;;7597:25:212;;;;;;;4257:18:230;;7597:59:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7581:75:212;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7581:75:212;;;7496:167;-1:-1:-1;;7496:167:212:o;6279:248:195:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:195;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;13290:3:230;13286:16;;;;13304:66;13282:89;13270:102;;13397:1;13388:11;;13145:260;6477:30:195;;;;-1:-1:-1;;6477:30:195;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13966:98:230;13939:18;;3713:52:107;13822:248:230;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;15666:552:195:-;15737:24;15764:207;15784:6;:15;;;15807:6;:14;;;15829:6;:12;;;15849:6;:19;;;15876:6;:20;;;15904:6;:16;;;15928:6;:17;;;15953:6;:12;;;15764;:207::i;:::-;16075:16;;;16089:1;16075:16;;;;;;;;;15737:234;;-1:-1:-1;15978:30:195;;16014:25;;15978:30;;16075:16;;;;;;;;;;;;-1:-1:-1;16075:16:195;16046:45;;16112:8;16097:9;16107:1;16097:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;16127:86;1310:66;16159:9;16170:11;16183:15;16200:12;16127:21;:86::i;:::-;15731:487;;;;15666:552;;:::o;7183:249:179:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:179;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12903:14:230;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4071:290:179;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:195:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:195;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:195:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:195;;;;-1:-1:-1;17879:370:195;;;-1:-1:-1;;;;;17879:370:195:o;5147:257:196:-;5258:16;;;5199:22;5258:16;;;;;;;;;5281:13;5297:64;1269:66;5229:45;5345:1;1398:66;5297:26;:64::i;:::-;5375:23;;;5147:257;-1:-1:-1;;;5147:257:196:o;2640:388:181:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:181;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:181;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:181;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:181:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:181;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:181;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;4646:27:181;;;;-1:-1:-1;;4646:27:181;;;;;;;;;-1:-1:-1;;;4595:26:181;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;18916:362:195:-;19145:12;19189:8;19199:7;19208:5;19215:12;19229:13;19244:9;19255:10;19267:5;19172:101;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19165:108;;18916:362;;;;;;;;;;:::o;6458:480:46:-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;6692:242::-;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;1836:227::-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:195:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:195;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:195;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:195;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:195;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:195;-1:-1:-1;;16961:760:195:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;12066:286:45;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4015:652:45;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12694:19:230;;12738:2;12729:12;;12565:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;26250:12:230;26289:15;;;45340:92:45;;;26271:34:230;26341:15;;;26321:18;;;26314:43;26393:15;;26373:18;;;26366:43;26213:18;;45340:92:45;26044:371:230;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;26593:25:230;;;26666:12;26654:25;;26634:18;;;26627:53;26566:18;;45581:74:45;26420:266:230;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;28531:79:230;;2092:30:124;;;28519:92:230;2092:30:124;;28627:12:230;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;51249:282:45:-;51494:30;;;;;;29374:19:230;;;29409:12;;;29402:28;;;51337:7:45;;29446:12:230;;51494:30:45;29185:279:230;1489:2340:44;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:230;;;4257:18;;7664:67:24;4138:177:230;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:190;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:190;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:230:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:230;;14:180;-1:-1:-1;14:180:230:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:230;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:230;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1208:200;1148:266;:::o;1419:777::-;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:230;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:230;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:230;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:230:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:230;3037:15;-1:-1:-1;;3033:88:230;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:230:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:230;3925:18;;3912:32;;-1:-1:-1;3995:2:230;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4687:235::-;4833:2;4818:18;;4845:37;4875:6;4845:37;:::i;:::-;4891:25;;;4687:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:315::-;5406:6;5414;5467:2;5455:9;5446:7;5442:23;5438:32;5435:52;;;5483:1;5480;5473:12;5435:52;5519:9;5506:23;5496:33;;5579:2;5568:9;5564:18;5551:32;5592:31;5617:5;5592:31;:::i;:::-;5642:5;5632:15;;;5338:315;;;;;:::o;5658:390::-;5736:6;5744;5797:2;5785:9;5776:7;5772:23;5768:32;5765:52;;;5813:1;5810;5803:12;5765:52;5849:9;5836:23;5826:33;;5910:2;5899:9;5895:18;5882:32;5937:18;5929:6;5926:30;5923:50;;;5969:1;5966;5959:12;5923:50;5992;6034:7;6025:6;6014:9;6010:22;5992:50;:::i;:::-;5982:60;;;5658:390;;;;;:::o;6759:250::-;6844:1;6854:113;6868:6;6865:1;6862:13;6854:113;;;6944:11;;;6938:18;6925:11;;;6918:39;6890:2;6883:10;6854:113;;;-1:-1:-1;;7001:1:230;6983:16;;6976:27;6759:250::o;7014:329::-;7055:3;7093:5;7087:12;7120:6;7115:3;7108:19;7136:76;7205:6;7198:4;7193:3;7189:14;7182:4;7175:5;7171:16;7136:76;:::i;:::-;7257:2;7245:15;-1:-1:-1;;7241:88:230;7232:98;;;;7332:4;7228:109;;7014:329;-1:-1:-1;;7014:329:230:o;7348:320::-;7555:6;7544:9;7537:25;7598:2;7593;7582:9;7578:18;7571:30;7518:4;7618:44;7658:2;7647:9;7643:18;7635:6;7618:44;:::i;7673:442::-;7726:5;7779:3;7772:4;7764:6;7760:17;7756:27;7746:55;;7797:1;7794;7787:12;7746:55;7826:6;7820:13;7857:49;7873:32;7902:2;7873:32;:::i;7857:49::-;7931:2;7922:7;7915:19;7977:3;7970:4;7965:2;7957:6;7953:15;7949:26;7946:35;7943:55;;;7994:1;7991;7984:12;7943:55;8007:77;8081:2;8074:4;8065:7;8061:18;8054:4;8046:6;8042:17;8007:77;:::i;8120:335::-;8199:6;8252:2;8240:9;8231:7;8227:23;8223:32;8220:52;;;8268:1;8265;8258:12;8220:52;8301:9;8295:16;8334:18;8326:6;8323:30;8320:50;;;8366:1;8363;8356:12;8320:50;8389:60;8441:7;8432:6;8421:9;8417:22;8389:60;:::i;8808:184::-;-1:-1:-1;;;8857:1:230;8850:88;8957:4;8954:1;8947:15;8981:4;8978:1;8971:15;8997:125;9062:9;;;9083:10;;;9080:36;;;9096:18;;:::i;9127:195::-;9166:3;-1:-1:-1;;9190:5:230;9187:77;9184:103;;9267:18;;:::i;:::-;-1:-1:-1;9314:1:230;9303:13;;9127:195::o;9327:251::-;9397:6;9450:2;9438:9;9429:7;9425:23;9421:32;9418:52;;;9466:1;9463;9456:12;9418:52;9498:9;9492:16;9517:31;9542:5;9517:31;:::i;10343:424::-;10565:6;10554:9;10547:25;10581:37;10611:6;10581:37;:::i;:::-;10654:6;10649:2;10638:9;10634:18;10627:34;10697:2;10692;10681:9;10677:18;10670:30;10528:4;10717:44;10757:2;10746:9;10742:18;10734:6;10717:44;:::i;12107:184::-;-1:-1:-1;;;12156:1:230;12149:88;12256:4;12253:1;12246:15;12280:4;12277:1;12270:15;13410:407;13493:5;13533;13527:12;13575:4;13568:5;13564:16;13558:23;13600:66;13692:2;13688;13684:11;13675:20;;13718:1;13710:6;13707:13;13704:107;;;13798:2;13792;13782:6;13779:1;13775:14;13772:1;13768:22;13764:31;13760:2;13756:40;13752:49;13743:58;;13704:107;;;;13410:407;;;:::o;14075:439::-;14128:3;14166:5;14160:12;14193:6;14188:3;14181:19;14219:4;14248;14243:3;14239:14;14232:21;;14287:4;14280:5;14276:16;14310:1;14320:169;14334:6;14331:1;14328:13;14320:169;;;14395:13;;14383:26;;14429:12;;;;14464:15;;;;14356:1;14349:9;14320:169;;;-1:-1:-1;14505:3:230;;14075:439;-1:-1:-1;;;;;14075:439:230:o;14519:468::-;14819:6;14808:9;14801:25;14862:2;14857;14846:9;14842:18;14835:30;14782:4;14882:56;14934:2;14923:9;14919:18;14911:6;14882:56;:::i;:::-;14874:64;;14974:6;14969:2;14958:9;14954:18;14947:34;14519:468;;;;;;:::o;14992:655::-;15134:6;15142;15150;15203:2;15191:9;15182:7;15178:23;15174:32;15171:52;;;15219:1;15216;15209:12;15171:52;15252:9;15246:16;15281:18;15322:2;15314:6;15311:14;15308:34;;;15338:1;15335;15328:12;15308:34;15361:60;15413:7;15404:6;15393:9;15389:22;15361:60;:::i;:::-;15351:70;;15461:2;15450:9;15446:18;15440:25;15430:35;;15511:2;15500:9;15496:18;15490:25;15474:41;;15540:2;15530:8;15527:16;15524:36;;;15556:1;15553;15546:12;15524:36;;15579:62;15633:7;15622:8;15611:9;15607:24;15579:62;:::i;15652:709::-;16022:6;16011:9;16004:25;16065:3;16060:2;16049:9;16045:18;16038:31;15985:4;16092:57;16144:3;16133:9;16129:19;16121:6;16092:57;:::i;:::-;16197:4;16189:6;16185:17;16180:2;16169:9;16165:18;16158:45;16251:9;16243:6;16239:22;16234:2;16223:9;16219:18;16212:50;16279:32;16304:6;16296;16279:32;:::i;:::-;16271:40;;;16348:6;16342:3;16331:9;16327:19;16320:35;15652:709;;;;;;;;:::o;16366:548::-;16690:6;16679:9;16672:25;16733:3;16728:2;16717:9;16713:18;16706:31;16653:4;16754:57;16806:3;16795:9;16791:19;16783:6;16754:57;:::i;:::-;16859:4;16847:17;;;;16842:2;16827:18;;16820:45;-1:-1:-1;16896:2:230;16881:18;16874:34;16746:65;16366:548;-1:-1:-1;;16366:548:230:o;16919:184::-;16989:6;17042:2;17030:9;17021:7;17017:23;17013:32;17010:52;;;17058:1;17055;17048:12;17010:52;-1:-1:-1;17081:16:230;;16919:184;-1:-1:-1;16919:184:230:o;17108:707::-;17455:6;17450:3;17443:19;17492:6;17487:2;17482:3;17478:12;17471:28;17508:37;17538:6;17508:37;:::i;:::-;17579:3;17575:16;;;;17570:2;17561:12;;17554:38;17617:2;17608:12;;17601:28;;;;17654:2;17645:12;;17638:28;;;;17691:3;17682:13;;17675:29;17729:3;17720:13;;17713:29;17767:3;17758:13;;17751:29;17805:3;17796:13;;17108:707;-1:-1:-1;;17108:707:230:o;17820:794::-;18215:6;18204:9;18197:25;18258:3;18253:2;18242:9;18238:18;18231:31;18178:4;18285:57;18337:3;18326:9;18322:19;18314:6;18285:57;:::i;:::-;18390:9;18382:6;18378:22;18373:2;18362:9;18358:18;18351:50;18424:32;18449:6;18441;18424:32;:::i;:::-;18410:46;;18492:6;18487:2;18476:9;18472:18;18465:34;18548:9;18540:6;18536:22;18530:3;18519:9;18515:19;18508:51;18576:32;18601:6;18593;18576:32;:::i;:::-;18568:40;17820:794;-1:-1:-1;;;;;;;;17820:794:230:o;18619:175::-;18656:3;18700:4;18693:5;18689:16;18729:4;18720:7;18717:17;18714:43;;18737:18;;:::i;:::-;18786:1;18773:15;;18619:175;-1:-1:-1;;18619:175:230:o;18799:604::-;19108:6;19097:9;19090:25;19151:3;19146:2;19135:9;19131:18;19124:31;19071:4;19178:57;19230:3;19219:9;19215:19;19207:6;19178:57;:::i;:::-;19283:4;19275:6;19271:17;19266:2;19255:9;19251:18;19244:45;19337:9;19329:6;19325:22;19320:2;19309:9;19305:18;19298:50;19365:32;19390:6;19382;19365:32;:::i;:::-;19357:40;18799:604;-1:-1:-1;;;;;;;18799:604:230:o;19735:128::-;19802:9;;;19823:11;;;19820:37;;;19837:18;;:::i;19868:168::-;19941:9;;;19972;;19989:15;;;19983:22;;19969:37;19959:71;;20010:18;;:::i;20041:640::-;20292:6;20287:3;20280:19;20262:3;20318:2;20351;20346:3;20342:12;20383:6;20377:13;20448:2;20440:6;20436:15;20469:1;20479:175;20493:6;20490:1;20487:13;20479:175;;;20556:13;;20542:28;;20592:14;;;;20629:15;;;;20515:1;20508:9;20479:175;;;-1:-1:-1;20670:5:230;;20041:640;-1:-1:-1;;;;;;;20041:640:230:o;20686:184::-;-1:-1:-1;;;20735:1:230;20728:88;20835:4;20832:1;20825:15;20859:4;20856:1;20849:15;20875:511;21126:2;21115:9;21108:21;21089:4;21152:56;21204:2;21193:9;21189:18;21181:6;21152:56;:::i;:::-;21256:14;21248:6;21244:27;21239:2;21228:9;21224:18;21217:55;21320:9;21312:6;21308:22;21303:2;21292:9;21288:18;21281:50;21348:32;21373:6;21365;21348:32;:::i;21391:616::-;21702:6;21691:9;21684:25;21745:3;21740:2;21729:9;21725:18;21718:31;21665:4;21772:57;21824:3;21813:9;21809:19;21801:6;21772:57;:::i;:::-;21877:14;21869:6;21865:27;21860:2;21849:9;21845:18;21838:55;21941:9;21933:6;21929:22;21924:2;21913:9;21909:18;21902:50;21969:32;21994:6;21986;21969:32;:::i;22012:925::-;22461:66;22453:6;22449:79;22444:3;22437:92;22419:3;22548;22580:2;22576:1;22571:3;22567:11;22560:23;22612:6;22606:13;22628:74;22695:6;22691:1;22686:3;22682:11;22675:4;22667:6;22663:17;22628:74;:::i;:::-;22730:6;22725:3;22721:16;22711:26;;22765:2;22761:1;22757:2;22753:10;22746:22;22799:6;22793:13;22777:29;;22815:75;22881:8;22877:1;22873:2;22869:10;22862:4;22854:6;22850:17;22815:75;:::i;:::-;22910:17;22929:1;22906:25;;22012:925;-1:-1:-1;;;;;22012:925:230:o;22942:339::-;23119:2;23108:9;23101:21;23082:4;23139:44;23179:2;23168:9;23164:18;23156:6;23139:44;:::i;:::-;23131:52;;-1:-1:-1;;;;;23223:6:230;23219:55;23214:2;23203:9;23199:18;23192:83;22942:339;;;;;:::o;23286:287::-;23415:3;23453:6;23447:13;23469:66;23528:6;23523:3;23516:4;23508:6;23504:17;23469:66;:::i;:::-;23551:16;;;;;23286:287;-1:-1:-1;;23286:287:230:o;23578:690::-;23913:3;23902:9;23895:22;23876:4;23940:57;23992:3;23981:9;23977:19;23969:6;23940:57;:::i;:::-;24045:9;24037:6;24033:22;24028:2;24017:9;24013:18;24006:50;24079:32;24104:6;24096;24079:32;:::i;:::-;24065:46;;24147:6;24142:2;24131:9;24127:18;24120:34;24202:9;24194:6;24190:22;24185:2;24174:9;24170:18;24163:50;24230:32;24255:6;24247;24230:32;:::i;24273:899::-;24729:6;24718:9;24711:25;24772:3;24767:2;24756:9;24752:18;24745:31;24692:4;24799:57;24851:3;24840:9;24836:19;24828:6;24799:57;:::i;:::-;24904:9;24896:6;24892:22;24887:2;24876:9;24872:18;24865:50;24938:32;24963:6;24955;24938:32;:::i;:::-;24924:46;;25006:6;25001:2;24990:9;24986:18;24979:34;25062:9;25054:6;25050:22;25044:3;25033:9;25029:19;25022:51;25090:32;25115:6;25107;25090:32;:::i;:::-;25082:40;;;25159:6;25153:3;25142:9;25138:19;25131:35;24273:899;;;;;;;;;:::o;25396:464::-;25643:66;25635:6;25631:79;25620:9;25613:98;25747:6;25742:2;25731:9;25727:18;25720:34;25790:2;25785;25774:9;25770:18;25763:30;25594:4;25810:44;25850:2;25839:9;25835:18;25827:6;25810:44;:::i;25865:174::-;25932:12;25964:10;;;25976;;;25960:27;;25999:11;;;25996:37;;;26013:18;;:::i;:::-;25996:37;25865:174;;;;:::o;26691:901::-;27116:6;27105:9;27098:25;27159:3;27154:2;27143:9;27139:18;27132:31;27079:4;27186:57;27238:3;27227:9;27223:19;27215:6;27186:57;:::i;:::-;27291:4;27279:17;;27274:2;27259:18;;27252:45;27316:12;27364:15;;;27359:2;27344:18;;27337:43;27417:15;;27411:3;27396:19;;27389:44;27464:3;27449:19;;27442:35;;;27514:22;;;27508:3;27493:19;;27486:51;27554:32;27518:6;27571;27554:32;:::i;:::-;27546:40;26691:901;-1:-1:-1;;;;;;;;;;26691:901:230:o;27597:788::-;27962:3;27951:9;27944:22;27925:4;27989:57;28041:3;28030:9;28026:19;28018:6;27989:57;:::i;:::-;28094:4;28086:6;28082:17;28077:2;28066:9;28062:18;28055:45;28148:14;28140:6;28136:27;28131:2;28120:9;28116:18;28109:55;28212:12;28204:6;28200:25;28195:2;28184:9;28180:18;28173:53;28263:6;28257:3;28246:9;28242:19;28235:35;28319:9;28311:6;28307:22;28301:3;28290:9;28286:19;28279:51;28347:32;28372:6;28364;28347:32;:::i;:::-;28339:40;27597:788;-1:-1:-1;;;;;;;;;27597:788:230:o;28650:530::-;28835:3;28873:6;28867:13;28889:66;28948:6;28943:3;28936:4;28928:6;28924:17;28889:66;:::i;:::-;29024:2;29020:15;;;;-1:-1:-1;;29016:88:230;28977:16;;;;29002:103;;;29132:2;29121:14;;29114:30;;;;29171:2;29160:14;;28650:530;-1:-1:-1;;28650:530:230:o;29469:359::-;29672:2;29661:9;29654:21;29635:4;29692:44;29732:2;29721:9;29717:18;29709:6;29692:44;:::i;:::-;29767:2;29752:18;;29745:34;;;;-1:-1:-1;29810:2:230;29795:18;29788:34;29684:52;29469:359;-1:-1:-1;29469:359:230:o", - "linkReferences": {} - }, - "methodIdentifiers": { - "_msgSender()": "119df25f", - "_msgValue()": "45ec9354", - "_world()": "e1af802c", - "enterGame(bytes32)": "c74dedc8", - "getCharacterTokenId(bytes32)": "f8c67561", - "getClass(bytes32)": "23801570", - "getCurrentAvailableLevel(uint256)": "1ecb393f", - "getExperience(bytes32)": "ebee03bb", - "getName(bytes32)": "54b8d5e3", - "getOwner(bytes32)": "deb931a2", - "getOwnerAddress(bytes32)": "00d43ec6", - "getPlayerEntityId(uint256)": "8338f0e0", - "getStats(bytes32)": "0bb700dc", - "isValidCharacterId(bytes32)": "623daa05", - "isValidOwner(bytes32,address)": "9b63ec05", - "mintCharacter(address,bytes32,string)": "143f3021", - "rollStats(bytes32,bytes32,uint8)": "679ee16d", - "supportsInterface(bytes4)": "01ffc9a7", - "updateTokenUri(bytes32,string)": "b27cbcbb" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c\",\"dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465\",\"dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN\"]},\"src/utils.sol\":{\"keccak256\":\"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57\",\"dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.24+commit.e11b9ed9" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "type": "error", - "name": "EncodedLengths_InvalidLength" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "start", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "end", - "type": "uint256" - } - ], - "type": "error", - "name": "Slice_OutOfBounds" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accessedIndex", - "type": "uint256" - } - ], - "type": "error", - "name": "Store_IndexOutOfBounds" - }, - { - "inputs": [ - { - "internalType": "bytes2", - "name": "expected", - "type": "bytes2" - }, - { - "internalType": "ResourceId", - "name": "resourceId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "resourceIdString", - "type": "string" - } - ], - "type": "error", - "name": "Store_InvalidResourceType" - }, - { - "inputs": [ - { - "internalType": "uint40", - "name": "startWithinField", - "type": "uint40" - }, - { - "internalType": "uint40", - "name": "deleteCount", - "type": "uint40" - }, - { - "internalType": "uint40", - "name": "fieldLength", - "type": "uint40" - } - ], - "type": "error", - "name": "Store_InvalidSplice" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "resource", - "type": "string" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "type": "error", - "name": "World_AccessDenied" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "functionSelector", - "type": "bytes4" - } - ], - "type": "error", - "name": "World_FunctionSelectorNotFound" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "resourceId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "resourceIdString", - "type": "string" - } - ], - "type": "error", - "name": "World_ResourceNotFound" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32", - "indexed": true - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false - }, - { - "internalType": "bytes", - "name": "staticData", - "type": "bytes", - "indexed": false - }, - { - "internalType": "EncodedLengths", - "name": "encodedLengths", - "type": "bytes32", - "indexed": false - }, - { - "internalType": "bytes", - "name": "dynamicData", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "Store_SetRecord", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32", - "indexed": true - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false - }, - { - "internalType": "uint8", - "name": "dynamicFieldIndex", - "type": "uint8", - "indexed": false - }, - { - "internalType": "uint48", - "name": "start", - "type": "uint48", - "indexed": false - }, - { - "internalType": "uint40", - "name": "deleteCount", - "type": "uint40", - "indexed": false - }, - { - "internalType": "EncodedLengths", - "name": "encodedLengths", - "type": "bytes32", - "indexed": false - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "Store_SpliceDynamicData", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32", - "indexed": true - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false - }, - { - "internalType": "uint48", - "name": "start", - "type": "uint48", - "indexed": false - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "Store_SpliceStaticData", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "_msgSender", - "outputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "pure", - "type": "function", - "name": "_msgValue", - "outputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "_world", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "enterGame" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function", - "name": "getCharacterTokenId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getClass", - "outputs": [ - { - "internalType": "enum Classes", - "name": "_class", - "type": "uint8" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "experience", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getCurrentAvailableLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "currentLevel", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getExperience", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "_name", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function", - "name": "getOwnerAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "characterTokenId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getPlayerEntityId", - "outputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getStats", - "outputs": [ - { - "internalType": "struct StatsData", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "strength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "agility", - "type": "uint256" - }, - { - "internalType": "enum Classes", - "name": "class", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "intelligence", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseHitPoints", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "currentHp", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "experience", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "level", - "type": "uint256" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "isValidCharacterId", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "isValidOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "tokenUri", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "mintCharacter", - "outputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "userRandomNumber", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "enum Classes", - "name": "class", - "type": "uint8" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "rollStats" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function", - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "tokenUri", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "updateTokenUri" - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "_msgSender()": { - "returns": { - "sender": "The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract." - } - }, - "_msgValue()": { - "returns": { - "value": "The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract." - } - }, - "_world()": { - "returns": { - "_0": "The address of the World contract that routed the call to this WorldContextConsumer." - } - }, - "getOwnerAddress(bytes32)": { - "details": "extracts the character nft owner address from the character Id" - }, - "mintCharacter(address,bytes32,string)": { - "params": { - "account": "the address of the account that will own the character", - "name": "the keccack256 hash of the characters name to check for duplicates", - "tokenUri": "the token uri to be set for the character token" - }, - "returns": { - "characterId": "the bytes32 character id combination of the owner address and the tokenId" - } - }, - "supportsInterface(bytes4)": { - "params": { - "interfaceId": "The ID of the interface in question." - }, - "returns": { - "_0": "True if the interface is supported, false otherwise." - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "_msgSender()": { - "notice": "Extract the `msg.sender` from the context appended to the calldata." - }, - "_msgValue()": { - "notice": "Extract the `msg.value` from the context appended to the calldata." - }, - "_world()": { - "notice": "Get the address of the World contract that routed the call to this WorldContextConsumer." - }, - "supportsInterface(bytes4)": { - "notice": "Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)" - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "@codegen/=src/codegen/", - "@erc1155/=lib/ERC1155-puppet/", - "@interfaces/=src/interfaces/", - "@latticexyz/=node_modules/@latticexyz/", - "@libraries/=src/libraries/", - "@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/", - "@openzeppelin/=node_modules/@openzeppelin/contracts/", - "@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/", - "@systems/=src/systems/", - "@tables/=src/codegen/tables/", - "@test/=test/", - "@world/=src/codegen/world/", - "ERC1155-puppet/=lib/ERC1155-puppet/", - "ds-test/=node_modules/ds-test/src/", - "forge-std/=node_modules/forge-std/src/" - ], - "optimizer": { - "enabled": true, - "runs": 3000 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/systems/CharacterSystem.sol": "CharacterSystem" - }, - "evmVersion": "paris", - "libraries": {} - }, - "sources": { - "constants.sol": { - "keccak256": "0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059", - "urls": [ - "bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c", - "dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM" - ], - "license": "MIT" - }, - "lib/ERC1155-puppet/IERC1155System.sol": { - "keccak256": "0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74", - "urls": [ - "bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c", - "dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol": { - "keccak256": "0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a", - "urls": [ - "bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44", - "dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Bytes.sol": { - "keccak256": "0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8", - "urls": [ - "bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35", - "dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/EncodedLengths.sol": { - "keccak256": "0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774", - "urls": [ - "bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09", - "dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/FieldLayout.sol": { - "keccak256": "0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658", - "urls": [ - "bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7", - "dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Hook.sol": { - "keccak256": "0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e", - "urls": [ - "bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3", - "dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IERC165.sol": { - "keccak256": "0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927", - "urls": [ - "bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2", - "dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol": { - "keccak256": "0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa", - "urls": [ - "bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba", - "dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol": { - "keccak256": "0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53", - "urls": [ - "bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817", - "dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/ISchemaErrors.sol": { - "keccak256": "0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441", - "urls": [ - "bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d", - "dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/ISliceErrors.sol": { - "keccak256": "0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c", - "urls": [ - "bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883", - "dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStore.sol": { - "keccak256": "0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706", - "urls": [ - "bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc", - "dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreErrors.sol": { - "keccak256": "0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912", - "urls": [ - "bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6", - "dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreEvents.sol": { - "keccak256": "0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a", - "urls": [ - "bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08", - "dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreHook.sol": { - "keccak256": "0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4", - "urls": [ - "bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562", - "dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreKernel.sol": { - "keccak256": "0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89", - "urls": [ - "bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0", - "dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreRead.sol": { - "keccak256": "0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b", - "urls": [ - "bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db", - "dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreRegistration.sol": { - "keccak256": "0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b", - "urls": [ - "bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a", - "dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreWrite.sol": { - "keccak256": "0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba", - "urls": [ - "bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890", - "dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Memory.sol": { - "keccak256": "0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811", - "urls": [ - "bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392", - "dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/ResourceId.sol": { - "keccak256": "0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2", - "urls": [ - "bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0", - "dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Schema.sol": { - "keccak256": "0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7", - "urls": [ - "bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3", - "dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Slice.sol": { - "keccak256": "0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345", - "urls": [ - "bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4", - "dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Storage.sol": { - "keccak256": "0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3", - "urls": [ - "bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee", - "dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/StoreCore.sol": { - "keccak256": "0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861", - "urls": [ - "bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2", - "dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/StoreSwitch.sol": { - "keccak256": "0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40", - "urls": [ - "bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91", - "dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/index.sol": { - "keccak256": "0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85", - "urls": [ - "bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4", - "dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol": { - "keccak256": "0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394", - "urls": [ - "bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53", - "dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol": { - "keccak256": "0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64", - "urls": [ - "bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905", - "dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol": { - "keccak256": "0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c", - "urls": [ - "bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6", - "dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/Tables.sol": { - "keccak256": "0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09", - "urls": [ - "bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc", - "dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/constants.sol": { - "keccak256": "0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6", - "urls": [ - "bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168", - "dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/rightMask.sol": { - "keccak256": "0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275", - "urls": [ - "bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754", - "dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/storeHookTypes.sol": { - "keccak256": "0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572", - "urls": [ - "bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3", - "dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/storeResourceTypes.sol": { - "keccak256": "0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261", - "urls": [ - "bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586", - "dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol": { - "keccak256": "0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152", - "urls": [ - "bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e", - "dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol": { - "keccak256": "0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3", - "urls": [ - "bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea", - "dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol": { - "keccak256": "0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8", - "urls": [ - "bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3", - "dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/version.sol": { - "keccak256": "0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a", - "urls": [ - "bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a", - "dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol": { - "keccak256": "0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1", - "urls": [ - "bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b", - "dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol": { - "keccak256": "0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e", - "urls": [ - "bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16", - "dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol": { - "keccak256": "0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903", - "urls": [ - "bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47", - "dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol": { - "keccak256": "0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13", - "urls": [ - "bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2", - "dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol": { - "keccak256": "0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa", - "urls": [ - "bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733", - "dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol": { - "keccak256": "0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d", - "urls": [ - "bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c", - "dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol": { - "keccak256": "0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7", - "urls": [ - "bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3", - "dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol": { - "keccak256": "0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5", - "urls": [ - "bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c", - "dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol": { - "keccak256": "0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542", - "urls": [ - "bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a", - "dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol": { - "keccak256": "0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7", - "urls": [ - "bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9", - "dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/AccessControl.sol": { - "keccak256": "0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e", - "urls": [ - "bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899", - "dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IERC165.sol": { - "keccak256": "0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d", - "urls": [ - "bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7", - "dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IModule.sol": { - "keccak256": "0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57", - "urls": [ - "bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2", - "dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IModuleErrors.sol": { - "keccak256": "0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d", - "urls": [ - "bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea", - "dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/ISystemHook.sol": { - "keccak256": "0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721", - "urls": [ - "bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f", - "dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldContextConsumer.sol": { - "keccak256": "0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299", - "urls": [ - "bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255", - "dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldErrors.sol": { - "keccak256": "0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b", - "urls": [ - "bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf", - "dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldEvents.sol": { - "keccak256": "0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243", - "urls": [ - "bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57", - "dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldKernel.sol": { - "keccak256": "0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b", - "urls": [ - "bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092", - "dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/System.sol": { - "keccak256": "0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd", - "urls": [ - "bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f", - "dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/SystemCall.sol": { - "keccak256": "0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af", - "urls": [ - "bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5", - "dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/WorldContext.sol": { - "keccak256": "0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9", - "urls": [ - "bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e", - "dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/WorldResourceId.sol": { - "keccak256": "0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee", - "urls": [ - "bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea", - "dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol": { - "keccak256": "0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc", - "urls": [ - "bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48", - "dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol": { - "keccak256": "0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4", - "urls": [ - "bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83", - "dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol": { - "keccak256": "0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17", - "urls": [ - "bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81", - "dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol": { - "keccak256": "0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c", - "urls": [ - "bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2", - "dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol": { - "keccak256": "0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35", - "urls": [ - "bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b", - "dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol": { - "keccak256": "0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800", - "urls": [ - "bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c", - "dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol": { - "keccak256": "0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c", - "urls": [ - "bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27", - "dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/Balances.sol": { - "keccak256": "0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d", - "urls": [ - "bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a", - "dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol": { - "keccak256": "0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926", - "urls": [ - "bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791", - "dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol": { - "keccak256": "0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614", - "urls": [ - "bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597", - "dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol": { - "keccak256": "0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc", - "urls": [ - "bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e", - "dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol": { - "keccak256": "0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f", - "urls": [ - "bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674", - "dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol": { - "keccak256": "0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493", - "urls": [ - "bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab", - "dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/Systems.sol": { - "keccak256": "0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c", - "urls": [ - "bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7", - "dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/constants.sol": { - "keccak256": "0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5", - "urls": [ - "bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22", - "dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/modules/init/types.sol": { - "keccak256": "0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc", - "urls": [ - "bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525", - "dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/revertWithBytes.sol": { - "keccak256": "0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5", - "urls": [ - "bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359", - "dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/systemHookTypes.sol": { - "keccak256": "0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a", - "urls": [ - "bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d", - "dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/worldResourceTypes.sol": { - "keccak256": "0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465", - "urls": [ - "bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea", - "dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk" - ], - "license": "MIT" - }, - "node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol": { - "keccak256": "0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504", - "urls": [ - "bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67", - "dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v" - ], - "license": "Apache-2.0" - }, - "node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol": { - "keccak256": "0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7", - "urls": [ - "bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415", - "dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq" - ], - "license": "Apache 2" - }, - "node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol": { - "keccak256": "0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748", - "urls": [ - "bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd", - "dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc" - ], - "license": "Apache 2" - }, - "node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol": { - "keccak256": "0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379", - "urls": [ - "bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952", - "dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958" - ], - "license": "Apache 2" - }, - "node_modules/forge-std/src/console2.sol": { - "keccak256": "0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea", - "urls": [ - "bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973", - "dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF" - ], - "license": "MIT" - }, - "src/codegen/common.sol": { - "keccak256": "0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42", - "urls": [ - "bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085", - "dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7" - ], - "license": "MIT" - }, - "src/codegen/index.sol": { - "keccak256": "0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0", - "urls": [ - "bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2", - "dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R" - ], - "license": "MIT" - }, - "src/codegen/tables/Actions.sol": { - "keccak256": "0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef", - "urls": [ - "bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392", - "dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ" - ], - "license": "MIT" - }, - "src/codegen/tables/Admin.sol": { - "keccak256": "0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725", - "urls": [ - "bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614", - "dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ" - ], - "license": "MIT" - }, - "src/codegen/tables/CharacterEquipment.sol": { - "keccak256": "0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32", - "urls": [ - "bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2", - "dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB" - ], - "license": "MIT" - }, - "src/codegen/tables/Characters.sol": { - "keccak256": "0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98", - "urls": [ - "bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893", - "dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH" - ], - "license": "MIT" - }, - "src/codegen/tables/CombatEncounter.sol": { - "keccak256": "0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696", - "urls": [ - "bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405", - "dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq" - ], - "license": "MIT" - }, - "src/codegen/tables/Counters.sol": { - "keccak256": "0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d", - "urls": [ - "bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8", - "dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG" - ], - "license": "MIT" - }, - "src/codegen/tables/EntitiesAtPosition.sol": { - "keccak256": "0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501", - "urls": [ - "bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4", - "dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB" - ], - "license": "MIT" - }, - "src/codegen/tables/Items.sol": { - "keccak256": "0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f", - "urls": [ - "bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f", - "dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj" - ], - "license": "MIT" - }, - "src/codegen/tables/Levels.sol": { - "keccak256": "0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327", - "urls": [ - "bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4", - "dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp" - ], - "license": "MIT" - }, - "src/codegen/tables/MapConfig.sol": { - "keccak256": "0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27", - "urls": [ - "bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3", - "dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch" - ], - "license": "MIT" - }, - "src/codegen/tables/MatchEntity.sol": { - "keccak256": "0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2", - "urls": [ - "bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b", - "dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ" - ], - "license": "MIT" - }, - "src/codegen/tables/Mobs.sol": { - "keccak256": "0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3", - "urls": [ - "bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060", - "dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9" - ], - "license": "MIT" - }, - "src/codegen/tables/MobsByLevel.sol": { - "keccak256": "0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d", - "urls": [ - "bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5", - "dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7" - ], - "license": "MIT" - }, - "src/codegen/tables/Name.sol": { - "keccak256": "0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99", - "urls": [ - "bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4", - "dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81" - ], - "license": "MIT" - }, - "src/codegen/tables/NameExists.sol": { - "keccak256": "0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab", - "urls": [ - "bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf", - "dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC" - ], - "license": "MIT" - }, - "src/codegen/tables/Position.sol": { - "keccak256": "0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d", - "urls": [ - "bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa", - "dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7" - ], - "license": "MIT" - }, - "src/codegen/tables/RandomNumbers.sol": { - "keccak256": "0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22", - "urls": [ - "bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5", - "dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA" - ], - "license": "MIT" - }, - "src/codegen/tables/Spawned.sol": { - "keccak256": "0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c", - "urls": [ - "bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905", - "dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw" - ], - "license": "MIT" - }, - "src/codegen/tables/StarterItems.sol": { - "keccak256": "0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3", - "urls": [ - "bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3", - "dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso" - ], - "license": "MIT" - }, - "src/codegen/tables/Stats.sol": { - "keccak256": "0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891", - "urls": [ - "bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227", - "dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP" - ], - "license": "MIT" - }, - "src/codegen/tables/UltimateDominionConfig.sol": { - "keccak256": "0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58", - "urls": [ - "bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9", - "dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs" - ], - "license": "MIT" - }, - "src/codegen/world/IActionSystem.sol": { - "keccak256": "0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d", - "urls": [ - "bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f", - "dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw" - ], - "license": "MIT" - }, - "src/codegen/world/ICharacterSystem.sol": { - "keccak256": "0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235", - "urls": [ - "bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782", - "dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X" - ], - "license": "MIT" - }, - "src/codegen/world/ICombatSystem.sol": { - "keccak256": "0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09", - "urls": [ - "bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947", - "dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD" - ], - "license": "MIT" - }, - "src/codegen/world/IEquipmentSystem.sol": { - "keccak256": "0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3", - "urls": [ - "bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa", - "dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW" - ], - "license": "MIT" - }, - "src/codegen/world/IItemsSystem.sol": { - "keccak256": "0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b", - "urls": [ - "bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b", - "dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH" - ], - "license": "MIT" - }, - "src/codegen/world/ILootManagerSystem.sol": { - "keccak256": "0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864", - "urls": [ - "bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0", - "dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK" - ], - "license": "MIT" - }, - "src/codegen/world/IMapSystem.sol": { - "keccak256": "0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80", - "urls": [ - "bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e", - "dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72" - ], - "license": "MIT" - }, - "src/codegen/world/IMobSystem.sol": { - "keccak256": "0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391", - "urls": [ - "bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c", - "dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS" - ], - "license": "MIT" - }, - "src/codegen/world/IUltimateDominionConfigSystem.sol": { - "keccak256": "0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f", - "urls": [ - "bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56", - "dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf" - ], - "license": "MIT" - }, - "src/codegen/world/IWorld.sol": { - "keccak256": "0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4", - "urls": [ - "bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64", - "dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv" - ], - "license": "MIT" - }, - "src/interfaces/IRngSystem.sol": { - "keccak256": "0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0", - "urls": [ - "bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02", - "dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn" - ], - "license": "MIT" - }, - "src/interfaces/Structs.sol": { - "keccak256": "0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de", - "urls": [ - "bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5", - "dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1" - ], - "license": "MIT" - }, - "src/libraries/LibChunks.sol": { - "keccak256": "0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767", - "urls": [ - "bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9", - "dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv" - ], - "license": "MIT" - }, - "src/systems/CharacterSystem.sol": { - "keccak256": "0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488", - "urls": [ - "bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465", - "dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN" - ], - "license": "MIT" - }, - "src/utils.sol": { - "keccak256": "0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc", - "urls": [ - "bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57", - "dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "id": 212 -} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061497d806100206000396000f3fe6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e65060001141414141400000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea26469706673582212205c1861d323ad8a0004b311ef7f75024cde0dfa48823ac2e8e54f579ec3be1e0364736f6c63430008180033","sourceMap":"1812:6250:211:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e65060001141414141400000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea26469706673582212205c1861d323ad8a0004b311ef7f75024cde0dfa48823ac2e8e54f579ec3be1e0364736f6c63430008180033","sourceMap":"1812:6250:211:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:144;;;;;;;;;;-1:-1:-1;2973:144:211;;;;;:::i;:::-;3106:2;3082:26;;2973:144;;;;-1:-1:-1;;;;;363:55:228;;;345:74;;333:2;318:18;2973:144:211;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:228;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:228;7936:124:211;;;;;;;;;;-1:-1:-1;7936:124:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;4111:837:211:-;;;;;;;;;;-1:-1:-1;4111:837:211;;;;;:::i;:::-;;:::i;:::-;;;4284:25:228;;;4272:2;4257:18;4111:837:211;4138:177:228;6106:492:211;;;;;;;;;;-1:-1:-1;6106:492:211;;;;;:::i;:::-;;:::i;1989:129::-;;;;;;;;;;-1:-1:-1;1989:129:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1853:130:211;;;;;;;;;;-1:-1:-1;1853:130:211;;;;;:::i;:::-;;:::i;3123:413::-;;;;;;;;;;-1:-1:-1;3123:413:211;;;;;:::i;:::-;;:::i;4954:545::-;;;;;;:::i;:::-;;:::i;:::-;;2460:266;;;;;;;;;;-1:-1:-1;2460:266:211;;;;;:::i;:::-;;:::i;3542:212::-;;;;;;;;;;-1:-1:-1;3542:212:211;;;;;:::i;:::-;;:::i;6604:219::-;;;;;;;;;;-1:-1:-1;6604:219:211;;;;;:::i;:::-;;:::i;5505:595::-;;;;;;;;;;-1:-1:-1;5505:595:211;;;;;:::i;:::-;;:::i;7669:125::-;;;;;;;;;;-1:-1:-1;7669:125:211;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7800:130:211:-;;;;;;;;;;-1:-1:-1;7800:130:211;;;;;:::i;:::-;;:::i;2732:143::-;;;;;;;;;;-1:-1:-1;2732:143:211;;;;;:::i;:::-;2830:37;;;2732:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7936:124:211:-;7996:16;;:::i;:::-;8031:22;8041:11;8031:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;4111:837:211:-;4221:19;4256:24;4283:28;:26;:28::i;:::-;4256:55;-1:-1:-1;4348:16:211;4329:35;;4321:83;;;;-1:-1:-1;;;4321:83:211;;6255:2:228;4321:83:211;;;6237:21:228;6294:2;6274:18;;;6267:30;6333:34;6313:18;;;6306:62;6404:5;6384:18;;;6377:33;6427:19;;4321:83:211;;;;;;;;;4421:8;:6;:8::i;:::-;-1:-1:-1;;;;;4414:21:211;;4449:37;4465:20;4449:15;:37::i;:::-;4488:65;;-1:-1:-1;;;;;6649:55:228;;4488:65:211;;;6631:74:228;6721:18;;;6714:34;;;6604:18;;4488:65:211;;;-1:-1:-1;;4488:65:211;;;;;;;;;;;;;;;;;;;;4414:149;;4488:65;4414:149;;;;;;;;;4488:65;4414:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4414:149:211;;;;;;;;;;;;:::i;:::-;;4587:35;4605:16;4587:17;:35::i;:::-;4573:49;;4632:41;4652:11;4665:7;4632:19;:41::i;:::-;4683:52;4705:11;4718:16;4683:21;:52::i;:::-;4754:25;4774:4;4754:19;:25::i;:::-;4753:26;4745:58;;;;-1:-1:-1;;;4745:58:211;;8662:2:228;4745:58:211;;;8644:21:228;8701:2;8681:18;;;8674:30;8740:21;8720:18;;;8713:49;8779:18;;4745:58:211;8460:343:228;4745:58:211;4813:31;4833:4;4839;4813:19;:31::i;:::-;4854:37;4873:11;4886:4;4854:18;:37::i;:::-;4901:40;4914:16;4932:8;4901:12;:40::i;:::-;4246:702;4111:837;;;;;:::o;6106:492::-;6181:20;6231:14;6242:2;6231:10;:14::i;:::-;6217:10;:28;6213:379;;-1:-1:-1;6276:2:211;6106:492;;;:::o;6213:379::-;6314:9;6309:273;6329:2;6325:1;:6;6309:273;;;6373:10;6356:13;6367:1;6356:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;6407:10:211;6387:17;6398:5;:1;6402;6398:5;:::i;:::-;6387:10;:17::i;:::-;:30;6356:61;6352:155;;;6456:5;:1;6460;6456:5;:::i;:::-;6441:20;;6483:5;;6352:155;6546:3;;;;:::i;:::-;;;;6309:273;;;;6106:492;;;:::o;1989:129::-;2049:14;2084:27;2099:11;2084:14;:27::i;1853:130::-;1912:13;1945:31;1964:11;1945:18;:31::i;3123:413::-;3193:4;3209:20;3232:28;3248:11;3106:2;3082:26;;2973:144;3232:28;3209:51;-1:-1:-1;2830:37:211;;;3270:15;3359:17;:15;:17::i;:::-;-1:-1:-1;;;;;3359:25:211;;3385:7;3359:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3359:34:211;;;;;;;;;;;;;;;;;;;-1:-1:-1;3359:34:211;;;;;;;;-1:-1:-1;;3359:34:211;;;;;;;;;;;;:::i;:::-;;;3355:135;;;3436:17;:15;:17::i;:::-;-1:-1:-1;;;;;3436:25:211;;3462:7;3436:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3436:34:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3426:44;;3394:87;3355:135;3517:12;-1:-1:-1;;;;;3506:23:211;:7;-1:-1:-1;;;;;3506:23:211;;3499:30;;;;;3123:413;;;:::o;4954:545::-;5069:33;5090:11;5069:20;:33::i;:::-;5068:34;5060:90;;;;-1:-1:-1;;;5060:90:211;;9785:2:228;5060:90:211;;;9767:21:228;9824:2;9804:18;;;9797:30;9863:34;9843:18;;;9836:62;9934:13;9914:18;;;9907:41;9965:19;;5060:90:211;9583:407:228;5060:90:211;5168:21;5177:11;5168:8;:21::i;:::-;5160:53;;;;-1:-1:-1;;;5160:53:211;;10197:2:228;5160:53:211;;;10179:21:228;10236:2;10216:18;;;10209:30;10275:21;10255:18;;;10248:49;10314:18;;5160:53:211;9995:343:228;5160:53:211;5223:26;5291:34;5306:11;5319:5;5291:14;:34::i;:::-;5382:110;5435:16;5453:11;5477;5466:23;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5466:23:211;;;;-1:-1:-1;;5466:23:211;;;;;;;;;;5400:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5400:91:211;;;;;;;;;;;;;;;;;;;;5382:17;:110::i;:::-;;5050:449;4954:545;;;:::o;2460:266::-;2534:19;2565:20;2588:17;:15;:17::i;:::-;-1:-1:-1;;;;;2588:25:211;;2614:16;2588:43;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;2588:43:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2697:2;2663:36;-1:-1:-1;;2663:36:211;:55;;;;;;-1:-1:-1;;2460:266:211:o;3542:212::-;3621:4;3644:31;3663:11;3644:18;:31::i;:::-;:103;;;;;3742:5;-1:-1:-1;;;;;3679:68:211;:17;:15;:17::i;:::-;:59;;;;;2830:37;;;3679:59;;;4284:25:228;-1:-1:-1;;;;;3679:25:211;;;;;;;4257:18:228;;3679:59:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3679:68:211;;3644:103;3637:110;3542:212;-1:-1:-1;;;3542:212:211:o;6604:219::-;6698:21;6707:11;6698:8;:21::i;:::-;6690:60;;;;-1:-1:-1;;;6690:60:211;;10974:2:228;6690:60:211;;;10956:21:228;11013:2;10993:18;;;10986:30;11052:28;11032:18;;;11025:56;11098:18;;6690:60:211;10772:350:228;6690:60:211;6760:56;2830:37;;;6807:8;6760:12;:56::i;:::-;6604:219;;:::o;5505:595::-;5570:21;5579:11;5570:8;:21::i;:::-;5562:52;;;;-1:-1:-1;;;5562:52:211;;11329:2:228;5562:52:211;;;11311:21:228;11368:2;11348:18;;;11341:30;11407:20;11387:18;;;11380:48;11445:18;;5562:52:211;11127:342:228;5562:52:211;5633:33;5654:11;5633:20;:33::i;:::-;5632:34;5624:72;;;;-1:-1:-1;;;5624:72:211;;11676:2:228;5624:72:211;;;11658:21:228;11715:2;11695:18;;;11688:30;11754:27;11734:18;;;11727:55;11799:18;;5624:72:211;11474:349:228;5624:72:211;5706:26;5735:22;5745:11;5735:9;:22::i;:::-;5785:1;5767:15;;;:19;5825:23;;;;5796:19;;;:53;5706:51;-1:-1:-1;5859:33:211;5869:11;5706:51;5859:9;:33::i;:::-;5909:8;:6;:8::i;:::-;5902:51;;;;;;;;12028:25:228;;;5945:7:211;12069:18:228;;;12062:34;-1:-1:-1;;;;;5902:29:211;;;;;;;12001:18:228;;5902:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:8;:6;:8::i;:::-;-1:-1:-1;;;;;5993:38:211;;6032:11;5993:51;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5993:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6054:39;6075:11;6088:4;6054:20;:39::i;7669:125::-;7729:7;7755:32;7775:11;7755:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7800:130:211:-;7865:7;7891:32;7911:11;7891:19;:32::i;13270:402:194:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:194;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:194:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;7003:347:211:-;7059:7;7078:25;7106:42;:40;:42::i;:::-;7078:70;;7158:24;7185:50;7213:17;7233:1;7185:19;:50::i;:::-;:54;;7238:1;7185:54;:::i;:::-;7158:81;;7249:61;7269:17;7288:1;7292:16;7249:19;:61::i;1157:186:219:-;1215:10;1240:100;1275:15;1303:9;1320:18;1240:25;:100::i;4730:249:178:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:178;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;12445:2:228;12441:15;;;;-1:-1:-1;;12437:88:228;12425:101;;12551:2;12542:12;;12296:264;4934:25:178;;;;-1:-1:-1;;4934:25:178;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:178;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12694:19:228;;12738:2;12729:12;;12565:182;2594:287:189;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:189;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:189:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:189;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12903:14:228;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4085:25:189;;;;-1:-1:-1;;4085:25:189;;;;;;;;;1198:66;4034:26;:91::i;5941:246:178:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:178;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12694:19:228;;12738:2;12729:12;;12565:182;6829:168:211;6911:79;6932:38;6949:20;6932:16;:38::i;:::-;6972:7;6981:8;6911:20;:79::i;3297:296:183:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:183;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:183;:64::i;5624:288:194:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:194;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:194;;;;5878:29;;;;;;;;:::i;5306:279:178:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:178;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2279:175:211:-;2329:30;2404:42;:40;:42::i;6512:295:178:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:178;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;7496:167:211:-;7558:4;7597:17;:15;:17::i;:::-;:59;;;;;2830:37;;;7597:59;;;4284:25:228;-1:-1:-1;;;;;7597:25:211;;;;;;;4257:18:228;;7597:59:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7581:75:211;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7581:75:211;;;7496:167;-1:-1:-1;;7496:167:211:o;6279:248:194:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:194;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;13290:3:228;13286:16;;;;13304:66;13282:89;13270:102;;13397:1;13388:11;;13145:260;6477:30:194;;;;-1:-1:-1;;6477:30:194;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13966:98:228;13939:18;;3713:52:107;13822:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;15666:552:194:-;15737:24;15764:207;15784:6;:15;;;15807:6;:14;;;15829:6;:12;;;15849:6;:19;;;15876:6;:20;;;15904:6;:16;;;15928:6;:17;;;15953:6;:12;;;15764;:207::i;:::-;16075:16;;;16089:1;16075:16;;;;;;;;;15737:234;;-1:-1:-1;15978:30:194;;16014:25;;15978:30;;16075:16;;;;;;;;;;;;-1:-1:-1;16075:16:194;16046:45;;16112:8;16097:9;16107:1;16097:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;16127:86;1310:66;16159:9;16170:11;16183:15;16200:12;16127:21;:86::i;:::-;15731:487;;;;15666:552;;:::o;7183:249:178:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:178;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12903:14:228;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4071:290:178;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:178;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:178:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:194:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:194;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:194:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:194;;;;-1:-1:-1;17879:370:194;;;-1:-1:-1;;;;;17879:370:194:o;5084:257:195:-;5195:16;;;5136:22;5195:16;;;;;;;;;5218:13;5234:64;1248:66;5166:45;5282:1;1377:66;5234:26;:64::i;:::-;5312:23;;;5084:257;-1:-1:-1;;;5084:257:195:o;2640:388:180:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:180;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:180;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:180;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:180:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:180;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:180;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12694:19:228;;12738:2;12729:12;;12565:182;4646:27:180;;;;-1:-1:-1;;4646:27:180;;;;;;;;;-1:-1:-1;;;4595:26:180;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;18916:362:194:-;19145:12;19189:8;19199:7;19208:5;19215:12;19229:13;19244:9;19255:10;19267:5;19172:101;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19165:108;;18916:362;;;;;;;;;;:::o;6458:480:46:-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;6692:242::-;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;1836:227::-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:194:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:194;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:194;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:194;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:194;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:194;-1:-1:-1;;16961:760:194:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;12066:286:45;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12694:19:228;;12738:2;12729:12;;12565:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4015:652:45;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12694:19:228;;12738:2;12729:12;;12565:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;26250:12:228;26289:15;;;45340:92:45;;;26271:34:228;26341:15;;;26321:18;;;26314:43;26393:15;;26373:18;;;26366:43;26213:18;;45340:92:45;26044:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;26593:25:228;;;26666:12;26654:25;;26634:18;;;26627:53;26566:18;;45581:74:45;26420:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;28531:79:228;;2092:30:124;;;28519:92:228;2092:30:124;;28627:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;51249:282:45:-;51494:30;;;;;;29374:19:228;;;29409:12;;;29402:28;;;51337:7:45;;29446:12:228;;51494:30:45;29185:279:228;1489:2340:44;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:228;;;4257:18;;7664:67:24;4138:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:189;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:189;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:228:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:228;;14:180;-1:-1:-1;14:180:228:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:228;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:228;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1208:200;1148:266;:::o;1419:777::-;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:228;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:228;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:228;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:228:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:228;3037:15;-1:-1:-1;;3033:88:228;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:228:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:228;3925:18;;3912:32;;-1:-1:-1;3995:2:228;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4687:235::-;4833:2;4818:18;;4845:37;4875:6;4845:37;:::i;:::-;4891:25;;;4687:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:315::-;5406:6;5414;5467:2;5455:9;5446:7;5442:23;5438:32;5435:52;;;5483:1;5480;5473:12;5435:52;5519:9;5506:23;5496:33;;5579:2;5568:9;5564:18;5551:32;5592:31;5617:5;5592:31;:::i;:::-;5642:5;5632:15;;;5338:315;;;;;:::o;5658:390::-;5736:6;5744;5797:2;5785:9;5776:7;5772:23;5768:32;5765:52;;;5813:1;5810;5803:12;5765:52;5849:9;5836:23;5826:33;;5910:2;5899:9;5895:18;5882:32;5937:18;5929:6;5926:30;5923:50;;;5969:1;5966;5959:12;5923:50;5992;6034:7;6025:6;6014:9;6010:22;5992:50;:::i;:::-;5982:60;;;5658:390;;;;;:::o;6759:250::-;6844:1;6854:113;6868:6;6865:1;6862:13;6854:113;;;6944:11;;;6938:18;6925:11;;;6918:39;6890:2;6883:10;6854:113;;;-1:-1:-1;;7001:1:228;6983:16;;6976:27;6759:250::o;7014:329::-;7055:3;7093:5;7087:12;7120:6;7115:3;7108:19;7136:76;7205:6;7198:4;7193:3;7189:14;7182:4;7175:5;7171:16;7136:76;:::i;:::-;7257:2;7245:15;-1:-1:-1;;7241:88:228;7232:98;;;;7332:4;7228:109;;7014:329;-1:-1:-1;;7014:329:228:o;7348:320::-;7555:6;7544:9;7537:25;7598:2;7593;7582:9;7578:18;7571:30;7518:4;7618:44;7658:2;7647:9;7643:18;7635:6;7618:44;:::i;7673:442::-;7726:5;7779:3;7772:4;7764:6;7760:17;7756:27;7746:55;;7797:1;7794;7787:12;7746:55;7826:6;7820:13;7857:49;7873:32;7902:2;7873:32;:::i;7857:49::-;7931:2;7922:7;7915:19;7977:3;7970:4;7965:2;7957:6;7953:15;7949:26;7946:35;7943:55;;;7994:1;7991;7984:12;7943:55;8007:77;8081:2;8074:4;8065:7;8061:18;8054:4;8046:6;8042:17;8007:77;:::i;8120:335::-;8199:6;8252:2;8240:9;8231:7;8227:23;8223:32;8220:52;;;8268:1;8265;8258:12;8220:52;8301:9;8295:16;8334:18;8326:6;8323:30;8320:50;;;8366:1;8363;8356:12;8320:50;8389:60;8441:7;8432:6;8421:9;8417:22;8389:60;:::i;8808:184::-;-1:-1:-1;;;8857:1:228;8850:88;8957:4;8954:1;8947:15;8981:4;8978:1;8971:15;8997:125;9062:9;;;9083:10;;;9080:36;;;9096:18;;:::i;9127:195::-;9166:3;-1:-1:-1;;9190:5:228;9187:77;9184:103;;9267:18;;:::i;:::-;-1:-1:-1;9314:1:228;9303:13;;9127:195::o;9327:251::-;9397:6;9450:2;9438:9;9429:7;9425:23;9421:32;9418:52;;;9466:1;9463;9456:12;9418:52;9498:9;9492:16;9517:31;9542:5;9517:31;:::i;10343:424::-;10565:6;10554:9;10547:25;10581:37;10611:6;10581:37;:::i;:::-;10654:6;10649:2;10638:9;10634:18;10627:34;10697:2;10692;10681:9;10677:18;10670:30;10528:4;10717:44;10757:2;10746:9;10742:18;10734:6;10717:44;:::i;12107:184::-;-1:-1:-1;;;12156:1:228;12149:88;12256:4;12253:1;12246:15;12280:4;12277:1;12270:15;13410:407;13493:5;13533;13527:12;13575:4;13568:5;13564:16;13558:23;13600:66;13692:2;13688;13684:11;13675:20;;13718:1;13710:6;13707:13;13704:107;;;13798:2;13792;13782:6;13779:1;13775:14;13772:1;13768:22;13764:31;13760:2;13756:40;13752:49;13743:58;;13704:107;;;;13410:407;;;:::o;14075:439::-;14128:3;14166:5;14160:12;14193:6;14188:3;14181:19;14219:4;14248;14243:3;14239:14;14232:21;;14287:4;14280:5;14276:16;14310:1;14320:169;14334:6;14331:1;14328:13;14320:169;;;14395:13;;14383:26;;14429:12;;;;14464:15;;;;14356:1;14349:9;14320:169;;;-1:-1:-1;14505:3:228;;14075:439;-1:-1:-1;;;;;14075:439:228:o;14519:468::-;14819:6;14808:9;14801:25;14862:2;14857;14846:9;14842:18;14835:30;14782:4;14882:56;14934:2;14923:9;14919:18;14911:6;14882:56;:::i;:::-;14874:64;;14974:6;14969:2;14958:9;14954:18;14947:34;14519:468;;;;;;:::o;14992:655::-;15134:6;15142;15150;15203:2;15191:9;15182:7;15178:23;15174:32;15171:52;;;15219:1;15216;15209:12;15171:52;15252:9;15246:16;15281:18;15322:2;15314:6;15311:14;15308:34;;;15338:1;15335;15328:12;15308:34;15361:60;15413:7;15404:6;15393:9;15389:22;15361:60;:::i;:::-;15351:70;;15461:2;15450:9;15446:18;15440:25;15430:35;;15511:2;15500:9;15496:18;15490:25;15474:41;;15540:2;15530:8;15527:16;15524:36;;;15556:1;15553;15546:12;15524:36;;15579:62;15633:7;15622:8;15611:9;15607:24;15579:62;:::i;15652:709::-;16022:6;16011:9;16004:25;16065:3;16060:2;16049:9;16045:18;16038:31;15985:4;16092:57;16144:3;16133:9;16129:19;16121:6;16092:57;:::i;:::-;16197:4;16189:6;16185:17;16180:2;16169:9;16165:18;16158:45;16251:9;16243:6;16239:22;16234:2;16223:9;16219:18;16212:50;16279:32;16304:6;16296;16279:32;:::i;:::-;16271:40;;;16348:6;16342:3;16331:9;16327:19;16320:35;15652:709;;;;;;;;:::o;16366:548::-;16690:6;16679:9;16672:25;16733:3;16728:2;16717:9;16713:18;16706:31;16653:4;16754:57;16806:3;16795:9;16791:19;16783:6;16754:57;:::i;:::-;16859:4;16847:17;;;;16842:2;16827:18;;16820:45;-1:-1:-1;16896:2:228;16881:18;16874:34;16746:65;16366:548;-1:-1:-1;;16366:548:228:o;16919:184::-;16989:6;17042:2;17030:9;17021:7;17017:23;17013:32;17010:52;;;17058:1;17055;17048:12;17010:52;-1:-1:-1;17081:16:228;;16919:184;-1:-1:-1;16919:184:228:o;17108:707::-;17455:6;17450:3;17443:19;17492:6;17487:2;17482:3;17478:12;17471:28;17508:37;17538:6;17508:37;:::i;:::-;17579:3;17575:16;;;;17570:2;17561:12;;17554:38;17617:2;17608:12;;17601:28;;;;17654:2;17645:12;;17638:28;;;;17691:3;17682:13;;17675:29;17729:3;17720:13;;17713:29;17767:3;17758:13;;17751:29;17805:3;17796:13;;17108:707;-1:-1:-1;;17108:707:228:o;17820:794::-;18215:6;18204:9;18197:25;18258:3;18253:2;18242:9;18238:18;18231:31;18178:4;18285:57;18337:3;18326:9;18322:19;18314:6;18285:57;:::i;:::-;18390:9;18382:6;18378:22;18373:2;18362:9;18358:18;18351:50;18424:32;18449:6;18441;18424:32;:::i;:::-;18410:46;;18492:6;18487:2;18476:9;18472:18;18465:34;18548:9;18540:6;18536:22;18530:3;18519:9;18515:19;18508:51;18576:32;18601:6;18593;18576:32;:::i;:::-;18568:40;17820:794;-1:-1:-1;;;;;;;;17820:794:228:o;18619:175::-;18656:3;18700:4;18693:5;18689:16;18729:4;18720:7;18717:17;18714:43;;18737:18;;:::i;:::-;18786:1;18773:15;;18619:175;-1:-1:-1;;18619:175:228:o;18799:604::-;19108:6;19097:9;19090:25;19151:3;19146:2;19135:9;19131:18;19124:31;19071:4;19178:57;19230:3;19219:9;19215:19;19207:6;19178:57;:::i;:::-;19283:4;19275:6;19271:17;19266:2;19255:9;19251:18;19244:45;19337:9;19329:6;19325:22;19320:2;19309:9;19305:18;19298:50;19365:32;19390:6;19382;19365:32;:::i;:::-;19357:40;18799:604;-1:-1:-1;;;;;;;18799:604:228:o;19735:128::-;19802:9;;;19823:11;;;19820:37;;;19837:18;;:::i;19868:168::-;19941:9;;;19972;;19989:15;;;19983:22;;19969:37;19959:71;;20010:18;;:::i;20041:640::-;20292:6;20287:3;20280:19;20262:3;20318:2;20351;20346:3;20342:12;20383:6;20377:13;20448:2;20440:6;20436:15;20469:1;20479:175;20493:6;20490:1;20487:13;20479:175;;;20556:13;;20542:28;;20592:14;;;;20629:15;;;;20515:1;20508:9;20479:175;;;-1:-1:-1;20670:5:228;;20041:640;-1:-1:-1;;;;;;;20041:640:228:o;20686:184::-;-1:-1:-1;;;20735:1:228;20728:88;20835:4;20832:1;20825:15;20859:4;20856:1;20849:15;20875:511;21126:2;21115:9;21108:21;21089:4;21152:56;21204:2;21193:9;21189:18;21181:6;21152:56;:::i;:::-;21256:14;21248:6;21244:27;21239:2;21228:9;21224:18;21217:55;21320:9;21312:6;21308:22;21303:2;21292:9;21288:18;21281:50;21348:32;21373:6;21365;21348:32;:::i;21391:616::-;21702:6;21691:9;21684:25;21745:3;21740:2;21729:9;21725:18;21718:31;21665:4;21772:57;21824:3;21813:9;21809:19;21801:6;21772:57;:::i;:::-;21877:14;21869:6;21865:27;21860:2;21849:9;21845:18;21838:55;21941:9;21933:6;21929:22;21924:2;21913:9;21909:18;21902:50;21969:32;21994:6;21986;21969:32;:::i;22012:925::-;22461:66;22453:6;22449:79;22444:3;22437:92;22419:3;22548;22580:2;22576:1;22571:3;22567:11;22560:23;22612:6;22606:13;22628:74;22695:6;22691:1;22686:3;22682:11;22675:4;22667:6;22663:17;22628:74;:::i;:::-;22730:6;22725:3;22721:16;22711:26;;22765:2;22761:1;22757:2;22753:10;22746:22;22799:6;22793:13;22777:29;;22815:75;22881:8;22877:1;22873:2;22869:10;22862:4;22854:6;22850:17;22815:75;:::i;:::-;22910:17;22929:1;22906:25;;22012:925;-1:-1:-1;;;;;22012:925:228:o;22942:339::-;23119:2;23108:9;23101:21;23082:4;23139:44;23179:2;23168:9;23164:18;23156:6;23139:44;:::i;:::-;23131:52;;-1:-1:-1;;;;;23223:6:228;23219:55;23214:2;23203:9;23199:18;23192:83;22942:339;;;;;:::o;23286:287::-;23415:3;23453:6;23447:13;23469:66;23528:6;23523:3;23516:4;23508:6;23504:17;23469:66;:::i;:::-;23551:16;;;;;23286:287;-1:-1:-1;;23286:287:228:o;23578:690::-;23913:3;23902:9;23895:22;23876:4;23940:57;23992:3;23981:9;23977:19;23969:6;23940:57;:::i;:::-;24045:9;24037:6;24033:22;24028:2;24017:9;24013:18;24006:50;24079:32;24104:6;24096;24079:32;:::i;:::-;24065:46;;24147:6;24142:2;24131:9;24127:18;24120:34;24202:9;24194:6;24190:22;24185:2;24174:9;24170:18;24163:50;24230:32;24255:6;24247;24230:32;:::i;24273:899::-;24729:6;24718:9;24711:25;24772:3;24767:2;24756:9;24752:18;24745:31;24692:4;24799:57;24851:3;24840:9;24836:19;24828:6;24799:57;:::i;:::-;24904:9;24896:6;24892:22;24887:2;24876:9;24872:18;24865:50;24938:32;24963:6;24955;24938:32;:::i;:::-;24924:46;;25006:6;25001:2;24990:9;24986:18;24979:34;25062:9;25054:6;25050:22;25044:3;25033:9;25029:19;25022:51;25090:32;25115:6;25107;25090:32;:::i;:::-;25082:40;;;25159:6;25153:3;25142:9;25138:19;25131:35;24273:899;;;;;;;;;:::o;25396:464::-;25643:66;25635:6;25631:79;25620:9;25613:98;25747:6;25742:2;25731:9;25727:18;25720:34;25790:2;25785;25774:9;25770:18;25763:30;25594:4;25810:44;25850:2;25839:9;25835:18;25827:6;25810:44;:::i;25865:174::-;25932:12;25964:10;;;25976;;;25960:27;;25999:11;;;25996:37;;;26013:18;;:::i;:::-;25996:37;25865:174;;;;:::o;26691:901::-;27116:6;27105:9;27098:25;27159:3;27154:2;27143:9;27139:18;27132:31;27079:4;27186:57;27238:3;27227:9;27223:19;27215:6;27186:57;:::i;:::-;27291:4;27279:17;;27274:2;27259:18;;27252:45;27316:12;27364:15;;;27359:2;27344:18;;27337:43;27417:15;;27411:3;27396:19;;27389:44;27464:3;27449:19;;27442:35;;;27514:22;;;27508:3;27493:19;;27486:51;27554:32;27518:6;27571;27554:32;:::i;:::-;27546:40;26691:901;-1:-1:-1;;;;;;;;;;26691:901:228:o;27597:788::-;27962:3;27951:9;27944:22;27925:4;27989:57;28041:3;28030:9;28026:19;28018:6;27989:57;:::i;:::-;28094:4;28086:6;28082:17;28077:2;28066:9;28062:18;28055:45;28148:14;28140:6;28136:27;28131:2;28120:9;28116:18;28109:55;28212:12;28204:6;28200:25;28195:2;28184:9;28180:18;28173:53;28263:6;28257:3;28246:9;28242:19;28235:35;28319:9;28311:6;28307:22;28301:3;28290:9;28286:19;28279:51;28347:32;28372:6;28364;28347:32;:::i;:::-;28339:40;27597:788;-1:-1:-1;;;;;;;;;27597:788:228:o;28650:530::-;28835:3;28873:6;28867:13;28889:66;28948:6;28943:3;28936:4;28928:6;28924:17;28889:66;:::i;:::-;29024:2;29020:15;;;;-1:-1:-1;;29016:88:228;28977:16;;;;29002:103;;;29132:2;29121:14;;29114:30;;;;29171:2;29160:14;;28650:530;-1:-1:-1;;28650:530:228:o;29469:359::-;29672:2;29661:9;29654:21;29635:4;29692:44;29732:2;29721:9;29717:18;29709:6;29692:44;:::i;:::-;29767:2;29752:18;;29745:34;;;;-1:-1:-1;29810:2:228;29795:18;29788:34;29684:52;29469:359;-1:-1:-1;29469:359:228:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentAvailableLevel(uint256)":"1ecb393f","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","isValidOwner(bytes32,address)":"9b63ec05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c\",\"dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256\",\"dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087\",\"dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9\",\"dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465\",\"dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN\"]},\"src/utils.sol\":{\"keccak256\":\"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57\",\"dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"isValidOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059","urls":["bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c","dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26","urls":["bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256","dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9","urls":["bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087","dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828","urls":["bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9","dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488","urls":["bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465","dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc","urls":["bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57","dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q"],"license":"MIT"}},"version":1},"id":211} \ No newline at end of file diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json b/packages/contracts/out/IWorld.sol/IWorld.abi.json index b6cfccaf6..d1b793391 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json @@ -1627,9 +1627,9 @@ "name": "UD__isParticipant", "inputs": [ { - "name": "account", - "type": "address", - "internalType": "address" + "name": "playerId", + "type": "bytes32", + "internalType": "bytes32" }, { "name": "encounterId", diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts index 12561c1c6..af9daa156 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts @@ -1627,9 +1627,9 @@ declare const abi: [ "name": "UD__isParticipant", "inputs": [ { - "name": "account", - "type": "address", - "internalType": "address" + "name": "playerId", + "type": "bytes32", + "internalType": "bytes32" }, { "name": "encounterId", diff --git a/packages/contracts/out/IWorld.sol/IWorld.json b/packages/contracts/out/IWorld.sol/IWorld.json index 811b6e6d2..6b00f9c42 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.json +++ b/packages/contracts/out/IWorld.sol/IWorld.json @@ -1,8903 +1 @@ -{ - "abi": [ - { - "type": "function", - "name": "UD___calculateMagicAttack", - "inputs": [], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD___calculatePhysicalAttack", - "inputs": [ - { - "name": "attackStats", - "type": "tuple", - "internalType": "struct PhysicalAttackStats", - "components": [ - { - "name": "bonusDamage", - "type": "int256", - "internalType": "int256" - }, - { - "name": "armorPenetration", - "type": "int256", - "internalType": "int256" - }, - { - "name": "attackModifierBonus", - "type": "int256", - "internalType": "int256" - }, - { - "name": "critChanceBonus", - "type": "int256", - "internalType": "int256" - }, - { - "name": "classRestrictions", - "type": "uint8[]", - "internalType": "uint8[]" - } - ] - }, - { - "name": "attackerId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "defenderId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "weaponId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "randomNumber", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "damage", - "type": "int256", - "internalType": "int256" - }, - { - "name": "hit", - "type": "bool", - "internalType": "bool" - }, - { - "name": "crit", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__applyEquipmentBonuses", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "modifiedStats", - "type": "tuple", - "internalType": "struct AdjustedCombatStats", - "components": [ - { - "name": "adjustedStrength", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "adjustedAgility", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "adjustedIntelligence", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "adjustedArmor", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "adjustedMaxHp", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "currentHp", - "type": "int256", - "internalType": "int256" - }, - { - "name": "level", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "class", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__assignActionToCharacter", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "actionId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__calculateGoldDrop", - "inputs": [ - { - "name": "mobLevel", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "randomNumber", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "dropAmount", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__checkRequirements", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "itemId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "canUse", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__createAction", - "inputs": [ - { - "name": "actionType", - "type": "uint8", - "internalType": "enum ActionType" - }, - { - "name": "actionStats", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "actionId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__createItem", - "inputs": [ - { - "name": "itemType", - "type": "uint8", - "internalType": "enum ItemType" - }, - { - "name": "supply", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "dropChance", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "stats", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "itemMetadataURI", - "type": "string", - "internalType": "string" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__createItems", - "inputs": [ - { - "name": "itemTypes", - "type": "uint8[]", - "internalType": "enum ItemType[]" - }, - { - "name": "supply", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "dropChances", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "stats", - "type": "bytes[]", - "internalType": "bytes[]" - }, - { - "name": "itemMetadataURIs", - "type": "string[]", - "internalType": "string[]" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__createMatch", - "inputs": [ - { - "name": "encounterType", - "type": "uint8", - "internalType": "enum EncounterType" - }, - { - "name": "attackers", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "defenders", - "type": "bytes32[]", - "internalType": "bytes32[]" - } - ], - "outputs": [ - { - "name": "encounterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__createMob", - "inputs": [ - { - "name": "mobType", - "type": "uint8", - "internalType": "enum MobType" - }, - { - "name": "stats", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "mobMetadataUri", - "type": "string", - "internalType": "string" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__createMobs", - "inputs": [ - { - "name": "mobTypes", - "type": "uint8[]", - "internalType": "enum MobType[]" - }, - { - "name": "stats", - "type": "bytes[]", - "internalType": "bytes[]" - }, - { - "name": "mobMetadataURIs", - "type": "string[]", - "internalType": "string[]" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__dropGold", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__dropItem", - "inputs": [ - { - "name": "itemId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__dropItems", - "inputs": [ - { - "name": "itemIds", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "amounts", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "characterIds", - "type": "bytes32[]", - "internalType": "bytes32[]" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__endTurn", - "inputs": [ - { - "name": "encounterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "playerId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "actions", - "type": "tuple[]", - "internalType": "struct Action[]", - "components": [ - { - "name": "attackerEntityId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "defenderEntityId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "actionId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "weaponId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ], - "outputs": [], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "UD__enterGame", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__equipAction", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "actionId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__equipItems", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "itemIds", - "type": "uint256[]", - "internalType": "uint256[]" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__executeCombat", - "inputs": [ - { - "name": "randomNumber", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "encounterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "actions", - "type": "tuple[]", - "internalType": "struct Action[]", - "components": [ - { - "name": "attackerEntityId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "defenderEntityId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "actionId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "weaponId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__getArmorStats", - "inputs": [ - { - "name": "itemId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "_ArmorStats", - "type": "tuple", - "internalType": "struct ArmorStats", - "components": [ - { - "name": "agiModifier", - "type": "int256", - "internalType": "int256" - }, - { - "name": "armorModifier", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "classRestrictions", - "type": "uint8[]", - "internalType": "uint8[]" - }, - { - "name": "hitPointModifier", - "type": "int256", - "internalType": "int256" - }, - { - "name": "intModifier", - "type": "int256", - "internalType": "int256" - }, - { - "name": "minLevel", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "strModifier", - "type": "int256", - "internalType": "int256" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getCharacterToken", - "inputs": [], - "outputs": [ - { - "name": "_characterToken", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getCharacterTokenId", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "UD__getClass", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "_class", - "type": "uint8", - "internalType": "enum Classes" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getCurrentAvailableLevel", - "inputs": [ - { - "name": "experience", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "currentLevel", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getCurrentItemsCounter", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getEncounter", - "inputs": [ - { - "name": "encounterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "_encounterData", - "type": "tuple", - "internalType": "struct CombatEncounterData", - "components": [ - { - "name": "encounterType", - "type": "uint8", - "internalType": "enum EncounterType" - }, - { - "name": "start", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "end", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "currentTurn", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "maxTurns", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "defenders", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "attackers", - "type": "bytes32[]", - "internalType": "bytes32[]" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getEntitiesAtPosition", - "inputs": [ - { - "name": "x", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "y", - "type": "uint16", - "internalType": "uint16" - } - ], - "outputs": [ - { - "name": "entitiesAtPosition", - "type": "bytes32[]", - "internalType": "bytes32[]" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getEntropy", - "inputs": [], - "outputs": [ - { - "name": "_entropy", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getExperience", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getGoldToken", - "inputs": [], - "outputs": [ - { - "name": "_goldToken", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getItemType", - "inputs": [ - { - "name": "itemId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint8", - "internalType": "enum ItemType" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getItemsContract", - "inputs": [], - "outputs": [ - { - "name": "_erc1155", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getLootManagerSystem", - "inputs": [], - "outputs": [ - { - "name": "_lootManager", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getMob", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "tuple", - "internalType": "struct MobsData", - "components": [ - { - "name": "mobType", - "type": "uint8", - "internalType": "enum MobType" - }, - { - "name": "mobStats", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "mobMetadata", - "type": "string", - "internalType": "string" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getMob", - "inputs": [ - { - "name": "mobId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "tuple", - "internalType": "struct MobsData", - "components": [ - { - "name": "mobType", - "type": "uint8", - "internalType": "enum MobType" - }, - { - "name": "mobStats", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "mobMetadata", - "type": "string", - "internalType": "string" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getMobId", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "UD__getMobPosition", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "x", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "y", - "type": "uint16", - "internalType": "uint16" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "UD__getMonsterStats", - "inputs": [ - { - "name": "mobId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "tuple", - "internalType": "struct MonsterStats", - "components": [ - { - "name": "agility", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "armor", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "class", - "type": "uint8", - "internalType": "enum Classes" - }, - { - "name": "experience", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "hitPoints", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "intelligence", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "inventory", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "level", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "strength", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getMonsterStats", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "tuple", - "internalType": "struct MonsterStats", - "components": [ - { - "name": "agility", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "armor", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "class", - "type": "uint8", - "internalType": "enum Classes" - }, - { - "name": "experience", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "hitPoints", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "intelligence", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "inventory", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "level", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "strength", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getMulticallContract", - "inputs": [], - "outputs": [ - { - "name": "_multicall", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getName", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "_name", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getNpcStats", - "inputs": [ - { - "name": "mobId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "tuple", - "internalType": "struct NPCStats", - "components": [ - { - "name": "name", - "type": "string", - "internalType": "string" - }, - { - "name": "storyPathIds", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "alignment", - "type": "uint8", - "internalType": "enum Alignment" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getNpcStats", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "tuple", - "internalType": "struct NPCStats", - "components": [ - { - "name": "name", - "type": "string", - "internalType": "string" - }, - { - "name": "storyPathIds", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "alignment", - "type": "uint8", - "internalType": "enum Alignment" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getOwner", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getOwnerAddress", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "UD__getPlayerEntityId", - "inputs": [ - { - "name": "characterTokenId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getPythProvider", - "inputs": [], - "outputs": [ - { - "name": "_provider", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getSpawnCounter", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "UD__getStarterItems", - "inputs": [ - { - "name": "class", - "type": "uint8", - "internalType": "enum Classes" - } - ], - "outputs": [ - { - "name": "data", - "type": "tuple", - "internalType": "struct StarterItemsData", - "components": [ - { - "name": "itemIds", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "amounts", - "type": "uint256[]", - "internalType": "uint256[]" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getStats", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "tuple", - "internalType": "struct StatsData", - "components": [ - { - "name": "strength", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "agility", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "class", - "type": "uint8", - "internalType": "enum Classes" - }, - { - "name": "intelligence", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "baseHitPoints", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "currentHp", - "type": "int256", - "internalType": "int256" - }, - { - "name": "experience", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "level", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getTotalSupply", - "inputs": [ - { - "name": "tokenId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "_supply", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__getWeaponStats", - "inputs": [ - { - "name": "itemId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "_weaponStats", - "type": "tuple", - "internalType": "struct WeaponStats", - "components": [ - { - "name": "agiModifier", - "type": "int256", - "internalType": "int256" - }, - { - "name": "classRestrictions", - "type": "uint8[]", - "internalType": "uint8[]" - }, - { - "name": "hitPointModifier", - "type": "int256", - "internalType": "int256" - }, - { - "name": "intModifier", - "type": "int256", - "internalType": "int256" - }, - { - "name": "maxDamage", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "minDamage", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "minLevel", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "strModifier", - "type": "int256", - "internalType": "int256" - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__isAtPosition", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "x", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "y", - "type": "uint16", - "internalType": "uint16" - } - ], - "outputs": [ - { - "name": "_isAtPosition", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__isEquipped", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "itemId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "_isEquipped", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__isItemOwner", - "inputs": [ - { - "name": "itemId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "account", - "type": "address", - "internalType": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__isParticipant", - "inputs": [ - { - "name": "account", - "type": "address", - "internalType": "address" - }, - { - "name": "participants", - "type": "bytes32[]", - "internalType": "bytes32[]" - } - ], - "outputs": [ - { - "name": "_isParticipant", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__isParticipant", - "inputs": [ - { - "name": "account", - "type": "address", - "internalType": "address" - }, - { - "name": "encounterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "_isParticipant", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__isValidCharacterId", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__isValidMob", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__isValidOwner", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "owner", - "type": "address", - "internalType": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__isValidPvE", - "inputs": [ - { - "name": "attackers", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "defenders", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "x", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "y", - "type": "uint16", - "internalType": "uint16" - } - ], - "outputs": [ - { - "name": "_isValidPvE", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UD__issueStarterItems", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__mintCharacter", - "inputs": [ - { - "name": "account", - "type": "address", - "internalType": "address" - }, - { - "name": "name", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "tokenUri", - "type": "string", - "internalType": "string" - } - ], - "outputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__move", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "x", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "y", - "type": "uint16", - "internalType": "uint16" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__rollStats", - "inputs": [ - { - "name": "userRandomNumber", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "class", - "type": "uint8", - "internalType": "enum Classes" - } - ], - "outputs": [], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "UD__setStarterItems", - "inputs": [ - { - "name": "class", - "type": "uint8", - "internalType": "enum Classes" - }, - { - "name": "itemIds", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "amounts", - "type": "uint256[]", - "internalType": "uint256[]" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__setTokenUri", - "inputs": [ - { - "name": "tokenId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "tokenUri", - "type": "string", - "internalType": "string" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__spawn", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__spawnMob", - "inputs": [ - { - "name": "mobId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "x", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "y", - "type": "uint16", - "internalType": "uint16" - } - ], - "outputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__unequipItem", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "itemId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "success", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "UD__updateTokenUri", - "inputs": [ - { - "name": "characterId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "tokenUri", - "type": "string", - "internalType": "string" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "batchCall", - "inputs": [ - { - "name": "systemCalls", - "type": "tuple[]", - "internalType": "struct SystemCallData[]", - "components": [ - { - "name": "systemId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "callData", - "type": "bytes", - "internalType": "bytes" - } - ] - } - ], - "outputs": [ - { - "name": "returnDatas", - "type": "bytes[]", - "internalType": "bytes[]" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "batchCallFrom", - "inputs": [ - { - "name": "systemCalls", - "type": "tuple[]", - "internalType": "struct SystemCallFromData[]", - "components": [ - { - "name": "from", - "type": "address", - "internalType": "address" - }, - { - "name": "systemId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "callData", - "type": "bytes", - "internalType": "bytes" - } - ] - } - ], - "outputs": [ - { - "name": "returnDatas", - "type": "bytes[]", - "internalType": "bytes[]" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "call", - "inputs": [ - { - "name": "systemId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "callData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "callFrom", - "inputs": [ - { - "name": "delegator", - "type": "address", - "internalType": "address" - }, - { - "name": "systemId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "callData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "creator", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "deleteRecord", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "getDynamicField", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "dynamicFieldIndex", - "type": "uint8", - "internalType": "uint8" - } - ], - "outputs": [ - { - "name": "", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getDynamicFieldLength", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "dynamicFieldIndex", - "type": "uint8", - "internalType": "uint8" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getDynamicFieldSlice", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "dynamicFieldIndex", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "start", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "end", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getField", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "fieldIndex", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "fieldLayout", - "type": "bytes32", - "internalType": "FieldLayout" - } - ], - "outputs": [ - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getField", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "fieldIndex", - "type": "uint8", - "internalType": "uint8" - } - ], - "outputs": [ - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getFieldLayout", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - } - ], - "outputs": [ - { - "name": "fieldLayout", - "type": "bytes32", - "internalType": "FieldLayout" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getFieldLength", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "fieldIndex", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "fieldLayout", - "type": "bytes32", - "internalType": "FieldLayout" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getFieldLength", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "fieldIndex", - "type": "uint8", - "internalType": "uint8" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getKeySchema", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - } - ], - "outputs": [ - { - "name": "keySchema", - "type": "bytes32", - "internalType": "Schema" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getRecord", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "fieldLayout", - "type": "bytes32", - "internalType": "FieldLayout" - } - ], - "outputs": [ - { - "name": "staticData", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "encodedLengths", - "type": "bytes32", - "internalType": "EncodedLengths" - }, - { - "name": "dynamicData", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getRecord", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - } - ], - "outputs": [ - { - "name": "staticData", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "encodedLengths", - "type": "bytes32", - "internalType": "EncodedLengths" - }, - { - "name": "dynamicData", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getStaticField", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "fieldIndex", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "fieldLayout", - "type": "bytes32", - "internalType": "FieldLayout" - } - ], - "outputs": [ - { - "name": "", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getValueSchema", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - } - ], - "outputs": [ - { - "name": "valueSchema", - "type": "bytes32", - "internalType": "Schema" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "grantAccess", - "inputs": [ - { - "name": "resourceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "grantee", - "type": "address", - "internalType": "address" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "initialize", - "inputs": [ - { - "name": "initModule", - "type": "address", - "internalType": "contract IModule" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "installModule", - "inputs": [ - { - "name": "module", - "type": "address", - "internalType": "contract IModule" - }, - { - "name": "encodedArgs", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "installRootModule", - "inputs": [ - { - "name": "module", - "type": "address", - "internalType": "contract IModule" - }, - { - "name": "encodedArgs", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "popFromDynamicField", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "dynamicFieldIndex", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "byteLengthToPop", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "pushToDynamicField", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "dynamicFieldIndex", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "dataToPush", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "registerDelegation", - "inputs": [ - { - "name": "delegatee", - "type": "address", - "internalType": "address" - }, - { - "name": "delegationControlId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "initCallData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "registerFunctionSelector", - "inputs": [ - { - "name": "systemId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "systemFunctionSignature", - "type": "string", - "internalType": "string" - } - ], - "outputs": [ - { - "name": "worldFunctionSelector", - "type": "bytes4", - "internalType": "bytes4" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "registerNamespace", - "inputs": [ - { - "name": "namespaceId", - "type": "bytes32", - "internalType": "ResourceId" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "registerNamespaceDelegation", - "inputs": [ - { - "name": "namespaceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "delegationControlId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "initCallData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "registerRootFunctionSelector", - "inputs": [ - { - "name": "systemId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "worldFunctionSignature", - "type": "string", - "internalType": "string" - }, - { - "name": "systemFunctionSignature", - "type": "string", - "internalType": "string" - } - ], - "outputs": [ - { - "name": "worldFunctionSelector", - "type": "bytes4", - "internalType": "bytes4" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "registerStoreHook", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "hookAddress", - "type": "address", - "internalType": "contract IStoreHook" - }, - { - "name": "enabledHooksBitmap", - "type": "uint8", - "internalType": "uint8" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "registerSystem", - "inputs": [ - { - "name": "systemId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "system", - "type": "address", - "internalType": "contract System" - }, - { - "name": "publicAccess", - "type": "bool", - "internalType": "bool" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "registerSystemHook", - "inputs": [ - { - "name": "systemId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "hookAddress", - "type": "address", - "internalType": "contract ISystemHook" - }, - { - "name": "enabledHooksBitmap", - "type": "uint8", - "internalType": "uint8" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "registerTable", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "fieldLayout", - "type": "bytes32", - "internalType": "FieldLayout" - }, - { - "name": "keySchema", - "type": "bytes32", - "internalType": "Schema" - }, - { - "name": "valueSchema", - "type": "bytes32", - "internalType": "Schema" - }, - { - "name": "keyNames", - "type": "string[]", - "internalType": "string[]" - }, - { - "name": "fieldNames", - "type": "string[]", - "internalType": "string[]" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "renounceOwnership", - "inputs": [ - { - "name": "namespaceId", - "type": "bytes32", - "internalType": "ResourceId" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "revokeAccess", - "inputs": [ - { - "name": "resourceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "grantee", - "type": "address", - "internalType": "address" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "setDynamicField", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "dynamicFieldIndex", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "setField", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "fieldIndex", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "setField", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "fieldIndex", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "fieldLayout", - "type": "bytes32", - "internalType": "FieldLayout" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "setRecord", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "staticData", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "encodedLengths", - "type": "bytes32", - "internalType": "EncodedLengths" - }, - { - "name": "dynamicData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "setStaticField", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "fieldIndex", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "fieldLayout", - "type": "bytes32", - "internalType": "FieldLayout" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "spliceDynamicData", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "dynamicFieldIndex", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "startWithinField", - "type": "uint40", - "internalType": "uint40" - }, - { - "name": "deleteCount", - "type": "uint40", - "internalType": "uint40" - }, - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "spliceStaticData", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "start", - "type": "uint48", - "internalType": "uint48" - }, - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "storeVersion", - "inputs": [], - "outputs": [ - { - "name": "version", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "transferBalanceToAddress", - "inputs": [ - { - "name": "fromNamespaceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "toAddress", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "transferBalanceToNamespace", - "inputs": [ - { - "name": "fromNamespaceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "toNamespaceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "transferOwnership", - "inputs": [ - { - "name": "namespaceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "newOwner", - "type": "address", - "internalType": "address" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "unregisterDelegation", - "inputs": [ - { - "name": "delegatee", - "type": "address", - "internalType": "address" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "unregisterNamespaceDelegation", - "inputs": [ - { - "name": "namespaceId", - "type": "bytes32", - "internalType": "ResourceId" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "unregisterStoreHook", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "hookAddress", - "type": "address", - "internalType": "contract IStoreHook" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "unregisterSystemHook", - "inputs": [ - { - "name": "systemId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "hookAddress", - "type": "address", - "internalType": "contract ISystemHook" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "worldVersion", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "view" - }, - { - "type": "event", - "name": "HelloStore", - "inputs": [ - { - "name": "storeVersion", - "type": "bytes32", - "indexed": true, - "internalType": "bytes32" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "HelloWorld", - "inputs": [ - { - "name": "worldVersion", - "type": "bytes32", - "indexed": true, - "internalType": "bytes32" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Store_DeleteRecord", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "indexed": true, - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false, - "internalType": "bytes32[]" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Store_SetRecord", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "indexed": true, - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false, - "internalType": "bytes32[]" - }, - { - "name": "staticData", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - }, - { - "name": "encodedLengths", - "type": "bytes32", - "indexed": false, - "internalType": "EncodedLengths" - }, - { - "name": "dynamicData", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Store_SpliceDynamicData", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "indexed": true, - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false, - "internalType": "bytes32[]" - }, - { - "name": "dynamicFieldIndex", - "type": "uint8", - "indexed": false, - "internalType": "uint8" - }, - { - "name": "start", - "type": "uint48", - "indexed": false, - "internalType": "uint48" - }, - { - "name": "deleteCount", - "type": "uint40", - "indexed": false, - "internalType": "uint40" - }, - { - "name": "encodedLengths", - "type": "bytes32", - "indexed": false, - "internalType": "EncodedLengths" - }, - { - "name": "data", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Store_SpliceStaticData", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "indexed": true, - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false, - "internalType": "bytes32[]" - }, - { - "name": "start", - "type": "uint48", - "indexed": false, - "internalType": "uint48" - }, - { - "name": "data", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - }, - { - "type": "error", - "name": "EncodedLengths_InvalidLength", - "inputs": [ - { - "name": "length", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "FieldLayout_Empty", - "inputs": [] - }, - { - "type": "error", - "name": "FieldLayout_InvalidStaticDataLength", - "inputs": [ - { - "name": "staticDataLength", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "computedStaticDataLength", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "FieldLayout_StaticLengthDoesNotFitInAWord", - "inputs": [ - { - "name": "index", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "FieldLayout_StaticLengthIsNotZero", - "inputs": [ - { - "name": "index", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "FieldLayout_StaticLengthIsZero", - "inputs": [ - { - "name": "index", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "FieldLayout_TooManyDynamicFields", - "inputs": [ - { - "name": "numFields", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "maxFields", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "FieldLayout_TooManyFields", - "inputs": [ - { - "name": "numFields", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "maxFields", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Module_AlreadyInstalled", - "inputs": [] - }, - { - "type": "error", - "name": "Module_MissingDependency", - "inputs": [ - { - "name": "dependency", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "error", - "name": "Module_NonRootInstallNotSupported", - "inputs": [] - }, - { - "type": "error", - "name": "Module_RootInstallNotSupported", - "inputs": [] - }, - { - "type": "error", - "name": "Schema_InvalidLength", - "inputs": [ - { - "name": "length", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Schema_StaticTypeAfterDynamicType", - "inputs": [] - }, - { - "type": "error", - "name": "Slice_OutOfBounds", - "inputs": [ - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "start", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "end", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_IndexOutOfBounds", - "inputs": [ - { - "name": "length", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "accessedIndex", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidBounds", - "inputs": [ - { - "name": "start", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "end", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidFieldNamesLength", - "inputs": [ - { - "name": "expected", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "received", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidKeyNamesLength", - "inputs": [ - { - "name": "expected", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "received", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidResourceType", - "inputs": [ - { - "name": "expected", - "type": "bytes2", - "internalType": "bytes2" - }, - { - "name": "resourceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "resourceIdString", - "type": "string", - "internalType": "string" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidSplice", - "inputs": [ - { - "name": "startWithinField", - "type": "uint40", - "internalType": "uint40" - }, - { - "name": "deleteCount", - "type": "uint40", - "internalType": "uint40" - }, - { - "name": "fieldLength", - "type": "uint40", - "internalType": "uint40" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidStaticDataLength", - "inputs": [ - { - "name": "expected", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "received", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidValueSchemaDynamicLength", - "inputs": [ - { - "name": "expected", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "received", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidValueSchemaLength", - "inputs": [ - { - "name": "expected", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "received", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidValueSchemaStaticLength", - "inputs": [ - { - "name": "expected", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "received", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_TableAlreadyExists", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "tableIdString", - "type": "string", - "internalType": "string" - } - ] - }, - { - "type": "error", - "name": "Store_TableNotFound", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "tableIdString", - "type": "string", - "internalType": "string" - } - ] - }, - { - "type": "error", - "name": "World_AccessDenied", - "inputs": [ - { - "name": "resource", - "type": "string", - "internalType": "string" - }, - { - "name": "caller", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "error", - "name": "World_AlreadyInitialized", - "inputs": [] - }, - { - "type": "error", - "name": "World_CallbackNotAllowed", - "inputs": [ - { - "name": "functionSelector", - "type": "bytes4", - "internalType": "bytes4" - } - ] - }, - { - "type": "error", - "name": "World_DelegationNotFound", - "inputs": [ - { - "name": "delegator", - "type": "address", - "internalType": "address" - }, - { - "name": "delegatee", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "error", - "name": "World_FunctionSelectorAlreadyExists", - "inputs": [ - { - "name": "functionSelector", - "type": "bytes4", - "internalType": "bytes4" - } - ] - }, - { - "type": "error", - "name": "World_FunctionSelectorNotFound", - "inputs": [ - { - "name": "functionSelector", - "type": "bytes4", - "internalType": "bytes4" - } - ] - }, - { - "type": "error", - "name": "World_InsufficientBalance", - "inputs": [ - { - "name": "balance", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "World_InterfaceNotSupported", - "inputs": [ - { - "name": "contractAddress", - "type": "address", - "internalType": "address" - }, - { - "name": "interfaceId", - "type": "bytes4", - "internalType": "bytes4" - } - ] - }, - { - "type": "error", - "name": "World_InvalidNamespace", - "inputs": [ - { - "name": "namespace", - "type": "bytes14", - "internalType": "bytes14" - } - ] - }, - { - "type": "error", - "name": "World_InvalidResourceId", - "inputs": [ - { - "name": "resourceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "resourceIdString", - "type": "string", - "internalType": "string" - } - ] - }, - { - "type": "error", - "name": "World_InvalidResourceType", - "inputs": [ - { - "name": "expected", - "type": "bytes2", - "internalType": "bytes2" - }, - { - "name": "resourceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "resourceIdString", - "type": "string", - "internalType": "string" - } - ] - }, - { - "type": "error", - "name": "World_ResourceAlreadyExists", - "inputs": [ - { - "name": "resourceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "resourceIdString", - "type": "string", - "internalType": "string" - } - ] - }, - { - "type": "error", - "name": "World_ResourceNotFound", - "inputs": [ - { - "name": "resourceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "resourceIdString", - "type": "string", - "internalType": "string" - } - ] - }, - { - "type": "error", - "name": "World_SystemAlreadyExists", - "inputs": [ - { - "name": "system", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "error", - "name": "World_UnlimitedDelegationNotAllowed", - "inputs": [] - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "UD___calculateMagicAttack()": "e0cac377", - "UD___calculatePhysicalAttack((int256,int256,int256,int256,uint8[]),bytes32,bytes32,uint256,uint256)": "bf81ff5d", - "UD__applyEquipmentBonuses(bytes32)": "54f1f2db", - "UD__assignActionToCharacter(bytes32,bytes32)": "854cd561", - "UD__calculateGoldDrop(uint256,uint256)": "c3505171", - "UD__checkRequirements(bytes32,uint256)": "bf4dbebc", - "UD__createAction(uint8,bytes)": "c3344bd2", - "UD__createItem(uint8,uint256,uint256,bytes,string)": "c2647a81", - "UD__createItems(uint8[],uint256[],uint256[],bytes[],string[])": "8a2d4e05", - "UD__createMatch(uint8,bytes32[],bytes32[])": "3e602b01", - "UD__createMob(uint8,bytes,string)": "8cc68cc7", - "UD__createMobs(uint8[],bytes[],string[])": "3f93a314", - "UD__dropGold(bytes32,uint256)": "fda0ce50", - "UD__dropItem(uint256,uint256,bytes32)": "88c571e1", - "UD__dropItems(uint256[],uint256[],bytes32[])": "e45cde14", - "UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])": "1f357129", - "UD__enterGame(bytes32)": "b968fa3a", - "UD__equipAction(bytes32,bytes32)": "3d37a73e", - "UD__equipItems(bytes32,uint256[])": "2d9ac2be", - "UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])": "a0ba1f1e", - "UD__getArmorStats(uint256)": "e75aa93b", - "UD__getCharacterToken()": "49d8cf02", - "UD__getCharacterTokenId(bytes32)": "d97302d0", - "UD__getClass(bytes32)": "0ae6f9ab", - "UD__getCurrentAvailableLevel(uint256)": "d453e623", - "UD__getCurrentItemsCounter()": "4652f280", - "UD__getEncounter(bytes32)": "55faf03a", - "UD__getEntitiesAtPosition(uint16,uint16)": "d0f8a4f5", - "UD__getEntropy()": "b5c691c7", - "UD__getExperience(bytes32)": "a8b79e60", - "UD__getGoldToken()": "8b994e32", - "UD__getItemType(uint256)": "cdaccbae", - "UD__getItemsContract()": "997f897a", - "UD__getLootManagerSystem()": "f2cb96f2", - "UD__getMob(bytes32)": "5ac36570", - "UD__getMob(uint256)": "622834d0", - "UD__getMobId(bytes32)": "53d64640", - "UD__getMobPosition(bytes32)": "8b3f8277", - "UD__getMonsterStats(bytes32)": "e6c22e06", - "UD__getMonsterStats(uint256)": "91b22373", - "UD__getMulticallContract()": "71ce415d", - "UD__getName(bytes32)": "e902af7a", - "UD__getNpcStats(bytes32)": "a17a6b7f", - "UD__getNpcStats(uint256)": "35c65325", - "UD__getOwner(bytes32)": "777c2caf", - "UD__getOwnerAddress(bytes32)": "4f10aabc", - "UD__getPlayerEntityId(uint256)": "02ee03fa", - "UD__getPythProvider()": "e24cefd9", - "UD__getSpawnCounter(bytes32)": "f4e1633b", - "UD__getStarterItems(uint8)": "b8bfeca1", - "UD__getStats(bytes32)": "14b13b0e", - "UD__getTotalSupply(uint256)": "37007d40", - "UD__getWeaponStats(uint256)": "810c1dc1", - "UD__isAtPosition(bytes32,uint16,uint16)": "f48a3972", - "UD__isEquipped(bytes32,uint256)": "7273e39a", - "UD__isItemOwner(uint256,address)": "b3634118", - "UD__isParticipant(address,bytes32)": "7868d715", - "UD__isParticipant(address,bytes32[])": "18853912", - "UD__isValidCharacterId(bytes32)": "fa1becc4", - "UD__isValidMob(bytes32)": "bace814a", - "UD__isValidOwner(bytes32,address)": "43def638", - "UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)": "c6d5525b", - "UD__issueStarterItems(bytes32)": "f9d175ed", - "UD__mintCharacter(address,bytes32,string)": "d408a43b", - "UD__move(bytes32,uint16,uint16)": "d1138fa1", - "UD__rollStats(bytes32,bytes32,uint8)": "18f14781", - "UD__setStarterItems(uint8,uint256[],uint256[])": "2f97d48f", - "UD__setTokenUri(uint256,string)": "d6556009", - "UD__spawn(bytes32)": "7e29a6f6", - "UD__spawnMob(uint256,uint16,uint16)": "15bc4248", - "UD__unequipItem(bytes32,uint256)": "7a190324", - "UD__updateTokenUri(bytes32,string)": "ecd73f84", - "batchCall((bytes32,bytes)[])": "ce5e8dd9", - "batchCallFrom((address,bytes32,bytes)[])": "8fc8cf7e", - "call(bytes32,bytes)": "3ae7af08", - "callFrom(address,bytes32,bytes)": "894ecc58", - "creator()": "02d05d3f", - "deleteRecord(bytes32,bytes32[])": "505a181d", - "getDynamicField(bytes32,bytes32[],uint8)": "1e788977", - "getDynamicFieldLength(bytes32,bytes32[],uint8)": "dbbf0e21", - "getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)": "4dc77d97", - "getField(bytes32,bytes32[],uint8)": "d03edb8c", - "getField(bytes32,bytes32[],uint8,bytes32)": "05242d2f", - "getFieldLayout(bytes32)": "3a77c2c2", - "getFieldLength(bytes32,bytes32[],uint8)": "a53417ed", - "getFieldLength(bytes32,bytes32[],uint8,bytes32)": "9f1fcf0a", - "getKeySchema(bytes32)": "d4285dc2", - "getRecord(bytes32,bytes32[])": "cc49db7e", - "getRecord(bytes32,bytes32[],bytes32)": "419b58fd", - "getStaticField(bytes32,bytes32[],uint8,bytes32)": "8c364d59", - "getValueSchema(bytes32)": "e228a4a3", - "grantAccess(bytes32,address)": "40554c3a", - "initialize(address)": "c4d66de8", - "installModule(address,bytes)": "8da798da", - "installRootModule(address,bytes)": "af068c9e", - "popFromDynamicField(bytes32,bytes32[],uint8,uint256)": "d9c03a04", - "pushToDynamicField(bytes32,bytes32[],uint8,bytes)": "150f3262", - "registerDelegation(address,bytes32,bytes)": "1d2257ba", - "registerFunctionSelector(bytes32,string)": "26d98102", - "registerNamespace(bytes32)": "b29e4089", - "registerNamespaceDelegation(bytes32,bytes32,bytes)": "bfdfaff7", - "registerRootFunctionSelector(bytes32,string,string)": "6548a90a", - "registerStoreHook(bytes32,address,uint8)": "530f4b60", - "registerSystem(bytes32,address,bool)": "3350b6a9", - "registerSystemHook(bytes32,address,uint8)": "d5f8337f", - "registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])": "0ba51f49", - "renounceOwnership(bytes32)": "219adc2e", - "revokeAccess(bytes32,address)": "8d53b208", - "setDynamicField(bytes32,bytes32[],uint8,bytes)": "ef6ea862", - "setField(bytes32,bytes32[],uint8,bytes)": "114a7266", - "setField(bytes32,bytes32[],uint8,bytes,bytes32)": "3708196e", - "setRecord(bytes32,bytes32[],bytes,bytes32,bytes)": "298314fb", - "setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)": "390baae0", - "spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)": "c0a2895a", - "spliceStaticData(bytes32,bytes32[],uint48,bytes)": "b047c1eb", - "storeVersion()": "c1122229", - "transferBalanceToAddress(bytes32,address,uint256)": "45afd199", - "transferBalanceToNamespace(bytes32,bytes32,uint256)": "c9c85a60", - "transferOwnership(bytes32,address)": "ef5d6bbb", - "unregisterDelegation(address)": "cdc938c5", - "unregisterNamespaceDelegation(bytes32)": "aa66e9c8", - "unregisterStoreHook(bytes32,address)": "05609129", - "unregisterSystemHook(bytes32,address)": "a92813ad", - "worldVersion()": "6951955d" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"name\":\"UD__assignActionToCharacter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD__calculateGoldDrop\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dropAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dropChance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"dropChances\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UD__dropGold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__dropItem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"name\":\"UD__equipAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getLootManagerSystem\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_lootManager\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getMulticallContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_multicall\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"UD__isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.24+commit.e11b9ed9" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "type": "error", - "name": "EncodedLengths_InvalidLength" - }, - { - "inputs": [], - "type": "error", - "name": "FieldLayout_Empty" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "staticDataLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "computedStaticDataLength", - "type": "uint256" - } - ], - "type": "error", - "name": "FieldLayout_InvalidStaticDataLength" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "type": "error", - "name": "FieldLayout_StaticLengthDoesNotFitInAWord" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "type": "error", - "name": "FieldLayout_StaticLengthIsNotZero" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "type": "error", - "name": "FieldLayout_StaticLengthIsZero" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numFields", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFields", - "type": "uint256" - } - ], - "type": "error", - "name": "FieldLayout_TooManyDynamicFields" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numFields", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFields", - "type": "uint256" - } - ], - "type": "error", - "name": "FieldLayout_TooManyFields" - }, - { - "inputs": [], - "type": "error", - "name": "Module_AlreadyInstalled" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dependency", - "type": "address" - } - ], - "type": "error", - "name": "Module_MissingDependency" - }, - { - "inputs": [], - "type": "error", - "name": "Module_NonRootInstallNotSupported" - }, - { - "inputs": [], - "type": "error", - "name": "Module_RootInstallNotSupported" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "type": "error", - "name": "Schema_InvalidLength" - }, - { - "inputs": [], - "type": "error", - "name": "Schema_StaticTypeAfterDynamicType" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "start", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "end", - "type": "uint256" - } - ], - "type": "error", - "name": "Slice_OutOfBounds" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accessedIndex", - "type": "uint256" - } - ], - "type": "error", - "name": "Store_IndexOutOfBounds" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "start", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "end", - "type": "uint256" - } - ], - "type": "error", - "name": "Store_InvalidBounds" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "expected", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "received", - "type": "uint256" - } - ], - "type": "error", - "name": "Store_InvalidFieldNamesLength" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "expected", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "received", - "type": "uint256" - } - ], - "type": "error", - "name": "Store_InvalidKeyNamesLength" - }, - { - "inputs": [ - { - "internalType": "bytes2", - "name": "expected", - "type": "bytes2" - }, - { - "internalType": "ResourceId", - "name": "resourceId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "resourceIdString", - "type": "string" - } - ], - "type": "error", - "name": "Store_InvalidResourceType" - }, - { - "inputs": [ - { - "internalType": "uint40", - "name": "startWithinField", - "type": "uint40" - }, - { - "internalType": "uint40", - "name": "deleteCount", - "type": "uint40" - }, - { - "internalType": "uint40", - "name": "fieldLength", - "type": "uint40" - } - ], - "type": "error", - "name": "Store_InvalidSplice" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "expected", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "received", - "type": "uint256" - } - ], - "type": "error", - "name": "Store_InvalidStaticDataLength" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "expected", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "received", - "type": "uint256" - } - ], - "type": "error", - "name": "Store_InvalidValueSchemaDynamicLength" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "expected", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "received", - "type": "uint256" - } - ], - "type": "error", - "name": "Store_InvalidValueSchemaLength" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "expected", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "received", - "type": "uint256" - } - ], - "type": "error", - "name": "Store_InvalidValueSchemaStaticLength" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "tableIdString", - "type": "string" - } - ], - "type": "error", - "name": "Store_TableAlreadyExists" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "tableIdString", - "type": "string" - } - ], - "type": "error", - "name": "Store_TableNotFound" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "resource", - "type": "string" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "type": "error", - "name": "World_AccessDenied" - }, - { - "inputs": [], - "type": "error", - "name": "World_AlreadyInitialized" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "functionSelector", - "type": "bytes4" - } - ], - "type": "error", - "name": "World_CallbackNotAllowed" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "internalType": "address", - "name": "delegatee", - "type": "address" - } - ], - "type": "error", - "name": "World_DelegationNotFound" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "functionSelector", - "type": "bytes4" - } - ], - "type": "error", - "name": "World_FunctionSelectorAlreadyExists" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "functionSelector", - "type": "bytes4" - } - ], - "type": "error", - "name": "World_FunctionSelectorNotFound" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "type": "error", - "name": "World_InsufficientBalance" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "type": "error", - "name": "World_InterfaceNotSupported" - }, - { - "inputs": [ - { - "internalType": "bytes14", - "name": "namespace", - "type": "bytes14" - } - ], - "type": "error", - "name": "World_InvalidNamespace" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "resourceId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "resourceIdString", - "type": "string" - } - ], - "type": "error", - "name": "World_InvalidResourceId" - }, - { - "inputs": [ - { - "internalType": "bytes2", - "name": "expected", - "type": "bytes2" - }, - { - "internalType": "ResourceId", - "name": "resourceId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "resourceIdString", - "type": "string" - } - ], - "type": "error", - "name": "World_InvalidResourceType" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "resourceId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "resourceIdString", - "type": "string" - } - ], - "type": "error", - "name": "World_ResourceAlreadyExists" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "resourceId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "resourceIdString", - "type": "string" - } - ], - "type": "error", - "name": "World_ResourceNotFound" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "system", - "type": "address" - } - ], - "type": "error", - "name": "World_SystemAlreadyExists" - }, - { - "inputs": [], - "type": "error", - "name": "World_UnlimitedDelegationNotAllowed" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "storeVersion", - "type": "bytes32", - "indexed": true - } - ], - "type": "event", - "name": "HelloStore", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "worldVersion", - "type": "bytes32", - "indexed": true - } - ], - "type": "event", - "name": "HelloWorld", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32", - "indexed": true - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false - } - ], - "type": "event", - "name": "Store_DeleteRecord", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32", - "indexed": true - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false - }, - { - "internalType": "bytes", - "name": "staticData", - "type": "bytes", - "indexed": false - }, - { - "internalType": "EncodedLengths", - "name": "encodedLengths", - "type": "bytes32", - "indexed": false - }, - { - "internalType": "bytes", - "name": "dynamicData", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "Store_SetRecord", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32", - "indexed": true - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false - }, - { - "internalType": "uint8", - "name": "dynamicFieldIndex", - "type": "uint8", - "indexed": false - }, - { - "internalType": "uint48", - "name": "start", - "type": "uint48", - "indexed": false - }, - { - "internalType": "uint40", - "name": "deleteCount", - "type": "uint40", - "indexed": false - }, - { - "internalType": "EncodedLengths", - "name": "encodedLengths", - "type": "bytes32", - "indexed": false - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "Store_SpliceDynamicData", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32", - "indexed": true - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false - }, - { - "internalType": "uint48", - "name": "start", - "type": "uint48", - "indexed": false - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "Store_SpliceStaticData", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD___calculateMagicAttack" - }, - { - "inputs": [ - { - "internalType": "struct PhysicalAttackStats", - "name": "attackStats", - "type": "tuple", - "components": [ - { - "internalType": "int256", - "name": "bonusDamage", - "type": "int256" - }, - { - "internalType": "int256", - "name": "armorPenetration", - "type": "int256" - }, - { - "internalType": "int256", - "name": "attackModifierBonus", - "type": "int256" - }, - { - "internalType": "int256", - "name": "critChanceBonus", - "type": "int256" - }, - { - "internalType": "uint8[]", - "name": "classRestrictions", - "type": "uint8[]" - } - ] - }, - { - "internalType": "bytes32", - "name": "attackerId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "defenderId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "weaponId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "randomNumber", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD___calculatePhysicalAttack", - "outputs": [ - { - "internalType": "int256", - "name": "damage", - "type": "int256" - }, - { - "internalType": "bool", - "name": "hit", - "type": "bool" - }, - { - "internalType": "bool", - "name": "crit", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__applyEquipmentBonuses", - "outputs": [ - { - "internalType": "struct AdjustedCombatStats", - "name": "modifiedStats", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "adjustedStrength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "adjustedAgility", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "adjustedIntelligence", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "adjustedArmor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "adjustedMaxHp", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "currentHp", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "level", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "class", - "type": "uint256" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "actionId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__assignActionToCharacter" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "mobLevel", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "randomNumber", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__calculateGoldDrop", - "outputs": [ - { - "internalType": "uint256", - "name": "dropAmount", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "itemId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__checkRequirements", - "outputs": [ - { - "internalType": "bool", - "name": "canUse", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "enum ActionType", - "name": "actionType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "actionStats", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__createAction", - "outputs": [ - { - "internalType": "bytes32", - "name": "actionId", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "enum ItemType", - "name": "itemType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "supply", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "dropChance", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "stats", - "type": "bytes" - }, - { - "internalType": "string", - "name": "itemMetadataURI", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__createItem", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "enum ItemType[]", - "name": "itemTypes", - "type": "uint8[]" - }, - { - "internalType": "uint256[]", - "name": "supply", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "dropChances", - "type": "uint256[]" - }, - { - "internalType": "bytes[]", - "name": "stats", - "type": "bytes[]" - }, - { - "internalType": "string[]", - "name": "itemMetadataURIs", - "type": "string[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__createItems" - }, - { - "inputs": [ - { - "internalType": "enum EncounterType", - "name": "encounterType", - "type": "uint8" - }, - { - "internalType": "bytes32[]", - "name": "attackers", - "type": "bytes32[]" - }, - { - "internalType": "bytes32[]", - "name": "defenders", - "type": "bytes32[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__createMatch", - "outputs": [ - { - "internalType": "bytes32", - "name": "encounterId", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "enum MobType", - "name": "mobType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "stats", - "type": "bytes" - }, - { - "internalType": "string", - "name": "mobMetadataUri", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__createMob", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "enum MobType[]", - "name": "mobTypes", - "type": "uint8[]" - }, - { - "internalType": "bytes[]", - "name": "stats", - "type": "bytes[]" - }, - { - "internalType": "string[]", - "name": "mobMetadataURIs", - "type": "string[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__createMobs" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__dropGold" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "itemId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__dropItem" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "itemIds", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - }, - { - "internalType": "bytes32[]", - "name": "characterIds", - "type": "bytes32[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__dropItems" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "encounterId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "playerId", - "type": "bytes32" - }, - { - "internalType": "struct Action[]", - "name": "actions", - "type": "tuple[]", - "components": [ - { - "internalType": "bytes32", - "name": "attackerEntityId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "defenderEntityId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "actionId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "weaponId", - "type": "uint256" - } - ] - } - ], - "stateMutability": "payable", - "type": "function", - "name": "UD__endTurn" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__enterGame" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "actionId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__equipAction" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "uint256[]", - "name": "itemIds", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__equipItems" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "randomNumber", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "encounterId", - "type": "bytes32" - }, - { - "internalType": "struct Action[]", - "name": "actions", - "type": "tuple[]", - "components": [ - { - "internalType": "bytes32", - "name": "attackerEntityId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "defenderEntityId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "actionId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "weaponId", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__executeCombat" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "itemId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getArmorStats", - "outputs": [ - { - "internalType": "struct ArmorStats", - "name": "_ArmorStats", - "type": "tuple", - "components": [ - { - "internalType": "int256", - "name": "agiModifier", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "armorModifier", - "type": "uint256" - }, - { - "internalType": "uint8[]", - "name": "classRestrictions", - "type": "uint8[]" - }, - { - "internalType": "int256", - "name": "hitPointModifier", - "type": "int256" - }, - { - "internalType": "int256", - "name": "intModifier", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "minLevel", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "strModifier", - "type": "int256" - } - ] - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UD__getCharacterToken", - "outputs": [ - { - "internalType": "address", - "name": "_characterToken", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function", - "name": "UD__getCharacterTokenId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getClass", - "outputs": [ - { - "internalType": "enum Classes", - "name": "_class", - "type": "uint8" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "experience", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getCurrentAvailableLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "currentLevel", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UD__getCurrentItemsCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "encounterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getEncounter", - "outputs": [ - { - "internalType": "struct CombatEncounterData", - "name": "_encounterData", - "type": "tuple", - "components": [ - { - "internalType": "enum EncounterType", - "name": "encounterType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "start", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "end", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "currentTurn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTurns", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "defenders", - "type": "bytes32[]" - }, - { - "internalType": "bytes32[]", - "name": "attackers", - "type": "bytes32[]" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "uint16", - "name": "x", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "y", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getEntitiesAtPosition", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "entitiesAtPosition", - "type": "bytes32[]" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UD__getEntropy", - "outputs": [ - { - "internalType": "address", - "name": "_entropy", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getExperience", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UD__getGoldToken", - "outputs": [ - { - "internalType": "address", - "name": "_goldToken", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "itemId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getItemType", - "outputs": [ - { - "internalType": "enum ItemType", - "name": "", - "type": "uint8" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UD__getItemsContract", - "outputs": [ - { - "internalType": "address", - "name": "_erc1155", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UD__getLootManagerSystem", - "outputs": [ - { - "internalType": "address", - "name": "_lootManager", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getMob", - "outputs": [ - { - "internalType": "struct MobsData", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "enum MobType", - "name": "mobType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "mobStats", - "type": "bytes" - }, - { - "internalType": "string", - "name": "mobMetadata", - "type": "string" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "mobId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getMob", - "outputs": [ - { - "internalType": "struct MobsData", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "enum MobType", - "name": "mobType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "mobStats", - "type": "bytes" - }, - { - "internalType": "string", - "name": "mobMetadata", - "type": "string" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function", - "name": "UD__getMobId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function", - "name": "UD__getMobPosition", - "outputs": [ - { - "internalType": "uint16", - "name": "x", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "y", - "type": "uint16" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "mobId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getMonsterStats", - "outputs": [ - { - "internalType": "struct MonsterStats", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "agility", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "armor", - "type": "uint256" - }, - { - "internalType": "enum Classes", - "name": "class", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "experience", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "hitPoints", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "intelligence", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "inventory", - "type": "uint256[]" - }, - { - "internalType": "uint256", - "name": "level", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "strength", - "type": "uint256" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getMonsterStats", - "outputs": [ - { - "internalType": "struct MonsterStats", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "agility", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "armor", - "type": "uint256" - }, - { - "internalType": "enum Classes", - "name": "class", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "experience", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "hitPoints", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "intelligence", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "inventory", - "type": "uint256[]" - }, - { - "internalType": "uint256", - "name": "level", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "strength", - "type": "uint256" - } - ] - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UD__getMulticallContract", - "outputs": [ - { - "internalType": "address", - "name": "_multicall", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "_name", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "mobId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getNpcStats", - "outputs": [ - { - "internalType": "struct NPCStats", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "storyPathIds", - "type": "bytes32[]" - }, - { - "internalType": "enum Alignment", - "name": "alignment", - "type": "uint8" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getNpcStats", - "outputs": [ - { - "internalType": "struct NPCStats", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "storyPathIds", - "type": "bytes32[]" - }, - { - "internalType": "enum Alignment", - "name": "alignment", - "type": "uint8" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function", - "name": "UD__getOwnerAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "characterTokenId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getPlayerEntityId", - "outputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UD__getPythProvider", - "outputs": [ - { - "internalType": "address", - "name": "_provider", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function", - "name": "UD__getSpawnCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "enum Classes", - "name": "class", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getStarterItems", - "outputs": [ - { - "internalType": "struct StarterItemsData", - "name": "data", - "type": "tuple", - "components": [ - { - "internalType": "uint256[]", - "name": "itemIds", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getStats", - "outputs": [ - { - "internalType": "struct StatsData", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "strength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "agility", - "type": "uint256" - }, - { - "internalType": "enum Classes", - "name": "class", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "intelligence", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseHitPoints", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "currentHp", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "experience", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "level", - "type": "uint256" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getTotalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "_supply", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "itemId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__getWeaponStats", - "outputs": [ - { - "internalType": "struct WeaponStats", - "name": "_weaponStats", - "type": "tuple", - "components": [ - { - "internalType": "int256", - "name": "agiModifier", - "type": "int256" - }, - { - "internalType": "uint8[]", - "name": "classRestrictions", - "type": "uint8[]" - }, - { - "internalType": "int256", - "name": "hitPointModifier", - "type": "int256" - }, - { - "internalType": "int256", - "name": "intModifier", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "maxDamage", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minDamage", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minLevel", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "strModifier", - "type": "int256" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - }, - { - "internalType": "uint16", - "name": "x", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "y", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__isAtPosition", - "outputs": [ - { - "internalType": "bool", - "name": "_isAtPosition", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "itemId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__isEquipped", - "outputs": [ - { - "internalType": "bool", - "name": "_isEquipped", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "itemId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__isItemOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "bytes32[]", - "name": "participants", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__isParticipant", - "outputs": [ - { - "internalType": "bool", - "name": "_isParticipant", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "encounterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__isParticipant", - "outputs": [ - { - "internalType": "bool", - "name": "_isParticipant", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__isValidCharacterId", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__isValidMob", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__isValidOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32[]", - "name": "attackers", - "type": "bytes32[]" - }, - { - "internalType": "bytes32[]", - "name": "defenders", - "type": "bytes32[]" - }, - { - "internalType": "uint16", - "name": "x", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "y", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function", - "name": "UD__isValidPvE", - "outputs": [ - { - "internalType": "bool", - "name": "_isValidPvE", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__issueStarterItems" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "tokenUri", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__mintCharacter", - "outputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - }, - { - "internalType": "uint16", - "name": "x", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "y", - "type": "uint16" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__move" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "userRandomNumber", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "enum Classes", - "name": "class", - "type": "uint8" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "UD__rollStats" - }, - { - "inputs": [ - { - "internalType": "enum Classes", - "name": "class", - "type": "uint8" - }, - { - "internalType": "uint256[]", - "name": "itemIds", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__setStarterItems" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "tokenUri", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__setTokenUri" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__spawn" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "mobId", - "type": "uint256" - }, - { - "internalType": "uint16", - "name": "x", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "y", - "type": "uint16" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__spawnMob", - "outputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "itemId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__unequipItem", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "characterId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "tokenUri", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "UD__updateTokenUri" - }, - { - "inputs": [ - { - "internalType": "struct SystemCallData[]", - "name": "systemCalls", - "type": "tuple[]", - "components": [ - { - "internalType": "ResourceId", - "name": "systemId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "batchCall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "returnDatas", - "type": "bytes[]" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct SystemCallFromData[]", - "name": "systemCalls", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "ResourceId", - "name": "systemId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "batchCallFrom", - "outputs": [ - { - "internalType": "bytes[]", - "name": "returnDatas", - "type": "bytes[]" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "systemId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "call", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "internalType": "ResourceId", - "name": "systemId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "callFrom", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "creator", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "deleteRecord" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "dynamicFieldIndex", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getDynamicField", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "dynamicFieldIndex", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getDynamicFieldLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "dynamicFieldIndex", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "start", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "end", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getDynamicFieldSlice", - "outputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "fieldIndex", - "type": "uint8" - }, - { - "internalType": "FieldLayout", - "name": "fieldLayout", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getField", - "outputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "fieldIndex", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getField", - "outputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getFieldLayout", - "outputs": [ - { - "internalType": "FieldLayout", - "name": "fieldLayout", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "fieldIndex", - "type": "uint8" - }, - { - "internalType": "FieldLayout", - "name": "fieldLayout", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getFieldLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "fieldIndex", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getFieldLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getKeySchema", - "outputs": [ - { - "internalType": "Schema", - "name": "keySchema", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "FieldLayout", - "name": "fieldLayout", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getRecord", - "outputs": [ - { - "internalType": "bytes", - "name": "staticData", - "type": "bytes" - }, - { - "internalType": "EncodedLengths", - "name": "encodedLengths", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "dynamicData", - "type": "bytes" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getRecord", - "outputs": [ - { - "internalType": "bytes", - "name": "staticData", - "type": "bytes" - }, - { - "internalType": "EncodedLengths", - "name": "encodedLengths", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "dynamicData", - "type": "bytes" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "fieldIndex", - "type": "uint8" - }, - { - "internalType": "FieldLayout", - "name": "fieldLayout", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getStaticField", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getValueSchema", - "outputs": [ - { - "internalType": "Schema", - "name": "valueSchema", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "resourceId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "grantee", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "grantAccess" - }, - { - "inputs": [ - { - "internalType": "contract IModule", - "name": "initModule", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "initialize" - }, - { - "inputs": [ - { - "internalType": "contract IModule", - "name": "module", - "type": "address" - }, - { - "internalType": "bytes", - "name": "encodedArgs", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "installModule" - }, - { - "inputs": [ - { - "internalType": "contract IModule", - "name": "module", - "type": "address" - }, - { - "internalType": "bytes", - "name": "encodedArgs", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "installRootModule" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "dynamicFieldIndex", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "byteLengthToPop", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "popFromDynamicField" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "dynamicFieldIndex", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "dataToPush", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "pushToDynamicField" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "delegatee", - "type": "address" - }, - { - "internalType": "ResourceId", - "name": "delegationControlId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "initCallData", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerDelegation" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "systemId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "systemFunctionSignature", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerFunctionSelector", - "outputs": [ - { - "internalType": "bytes4", - "name": "worldFunctionSelector", - "type": "bytes4" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "namespaceId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerNamespace" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "namespaceId", - "type": "bytes32" - }, - { - "internalType": "ResourceId", - "name": "delegationControlId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "initCallData", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerNamespaceDelegation" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "systemId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "worldFunctionSignature", - "type": "string" - }, - { - "internalType": "string", - "name": "systemFunctionSignature", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerRootFunctionSelector", - "outputs": [ - { - "internalType": "bytes4", - "name": "worldFunctionSelector", - "type": "bytes4" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "contract IStoreHook", - "name": "hookAddress", - "type": "address" - }, - { - "internalType": "uint8", - "name": "enabledHooksBitmap", - "type": "uint8" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerStoreHook" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "systemId", - "type": "bytes32" - }, - { - "internalType": "contract System", - "name": "system", - "type": "address" - }, - { - "internalType": "bool", - "name": "publicAccess", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerSystem" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "systemId", - "type": "bytes32" - }, - { - "internalType": "contract ISystemHook", - "name": "hookAddress", - "type": "address" - }, - { - "internalType": "uint8", - "name": "enabledHooksBitmap", - "type": "uint8" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerSystemHook" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "FieldLayout", - "name": "fieldLayout", - "type": "bytes32" - }, - { - "internalType": "Schema", - "name": "keySchema", - "type": "bytes32" - }, - { - "internalType": "Schema", - "name": "valueSchema", - "type": "bytes32" - }, - { - "internalType": "string[]", - "name": "keyNames", - "type": "string[]" - }, - { - "internalType": "string[]", - "name": "fieldNames", - "type": "string[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerTable" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "namespaceId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "renounceOwnership" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "resourceId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "grantee", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "revokeAccess" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "dynamicFieldIndex", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setDynamicField" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "fieldIndex", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setField" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "fieldIndex", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "FieldLayout", - "name": "fieldLayout", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setField" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "staticData", - "type": "bytes" - }, - { - "internalType": "EncodedLengths", - "name": "encodedLengths", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "dynamicData", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setRecord" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "fieldIndex", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "FieldLayout", - "name": "fieldLayout", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setStaticField" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint8", - "name": "dynamicFieldIndex", - "type": "uint8" - }, - { - "internalType": "uint40", - "name": "startWithinField", - "type": "uint40" - }, - { - "internalType": "uint40", - "name": "deleteCount", - "type": "uint40" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "spliceDynamicData" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]" - }, - { - "internalType": "uint48", - "name": "start", - "type": "uint48" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "spliceStaticData" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "storeVersion", - "outputs": [ - { - "internalType": "bytes32", - "name": "version", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "fromNamespaceId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "toAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transferBalanceToAddress" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "fromNamespaceId", - "type": "bytes32" - }, - { - "internalType": "ResourceId", - "name": "toNamespaceId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transferBalanceToNamespace" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "namespaceId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transferOwnership" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "delegatee", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "unregisterDelegation" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "namespaceId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "unregisterNamespaceDelegation" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32" - }, - { - "internalType": "contract IStoreHook", - "name": "hookAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "unregisterStoreHook" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "systemId", - "type": "bytes32" - }, - { - "internalType": "contract ISystemHook", - "name": "hookAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "unregisterSystemHook" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "worldVersion", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "call(bytes32,bytes)": { - "details": "If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).", - "params": { - "callData": "The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.", - "systemId": "The ID of the system to be called." - }, - "returns": { - "_0": "The abi encoded return data from the called system." - } - }, - "callFrom(address,bytes32,bytes)": { - "details": "If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).", - "params": { - "callData": "The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.", - "delegator": "The address on whose behalf the call is made.", - "systemId": "The ID of the system to be called." - }, - "returns": { - "_0": "The abi encoded return data from the called system." - } - }, - "creator()": { - "returns": { - "_0": "The address of the World's creator." - } - }, - "initialize(address)": { - "details": "Can only be called once by the creator.", - "params": { - "initModule": "The InitModule to be installed during initialization." - } - }, - "installRootModule(address,bytes)": { - "details": "Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.", - "params": { - "encodedArgs": "The ABI encoded arguments for the module installation.", - "module": "The module to be installed." - } - }, - "storeVersion()": { - "returns": { - "version": "The protocol version of the Store contract." - } - }, - "worldVersion()": { - "returns": { - "_0": "The protocol version of the World." - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "call(bytes32,bytes)": { - "notice": "Call the system at the given system ID." - }, - "callFrom(address,bytes32,bytes)": { - "notice": "Call the system at the given system ID on behalf of the given delegator." - }, - "creator()": { - "notice": "Retrieve the immutable original deployer of the World." - }, - "getDynamicField(bytes32,bytes32[],uint8)": { - "notice": "Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)" - }, - "getDynamicFieldLength(bytes32,bytes32[],uint8)": { - "notice": "Get the byte length of a single dynamic field from the given tableId and key tuple" - }, - "getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)": { - "notice": "Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow." - }, - "getField(bytes32,bytes32[],uint8)": { - "notice": "Get a single field from the given tableId and key tuple, loading the field layout from storage" - }, - "getField(bytes32,bytes32[],uint8,bytes32)": { - "notice": "Get a single field from the given tableId and key tuple, with the given field layout" - }, - "getFieldLength(bytes32,bytes32[],uint8)": { - "notice": "Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage" - }, - "getFieldLength(bytes32,bytes32[],uint8,bytes32)": { - "notice": "Get the byte length of a single field from the given tableId and key tuple, with the given value field layout" - }, - "getRecord(bytes32,bytes32[])": { - "notice": "Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage" - }, - "getRecord(bytes32,bytes32[],bytes32)": { - "notice": "Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout" - }, - "getStaticField(bytes32,bytes32[],uint8,bytes32)": { - "notice": "Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed." - }, - "initialize(address)": { - "notice": "Initializes the World." - }, - "installRootModule(address,bytes)": { - "notice": "Install the given root module in the World." - }, - "storeVersion()": { - "notice": "Returns the protocol version of the Store contract." - }, - "worldVersion()": { - "notice": "Retrieve the protocol version of the World." - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "@codegen/=src/codegen/", - "@erc1155/=lib/ERC1155-puppet/", - "@interfaces/=src/interfaces/", - "@latticexyz/=node_modules/@latticexyz/", - "@libraries/=src/libraries/", - "@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/", - "@openzeppelin/=node_modules/@openzeppelin/contracts/", - "@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/", - "@systems/=src/systems/", - "@tables/=src/codegen/tables/", - "@test/=test/", - "@world/=src/codegen/world/", - "ERC1155-puppet/=lib/ERC1155-puppet/", - "ds-test/=node_modules/ds-test/src/", - "forge-std/=node_modules/forge-std/src/" - ], - "optimizer": { - "enabled": true, - "runs": 3000 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/codegen/world/IWorld.sol": "IWorld" - }, - "evmVersion": "paris", - "libraries": {} - }, - "sources": { - "node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol": { - "keccak256": "0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a", - "urls": [ - "bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44", - "dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Bytes.sol": { - "keccak256": "0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8", - "urls": [ - "bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35", - "dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/EncodedLengths.sol": { - "keccak256": "0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774", - "urls": [ - "bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09", - "dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/FieldLayout.sol": { - "keccak256": "0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658", - "urls": [ - "bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7", - "dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Hook.sol": { - "keccak256": "0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e", - "urls": [ - "bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3", - "dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IERC165.sol": { - "keccak256": "0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927", - "urls": [ - "bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2", - "dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol": { - "keccak256": "0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa", - "urls": [ - "bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba", - "dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol": { - "keccak256": "0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53", - "urls": [ - "bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817", - "dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/ISchemaErrors.sol": { - "keccak256": "0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441", - "urls": [ - "bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d", - "dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/ISliceErrors.sol": { - "keccak256": "0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c", - "urls": [ - "bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883", - "dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStore.sol": { - "keccak256": "0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706", - "urls": [ - "bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc", - "dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreErrors.sol": { - "keccak256": "0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912", - "urls": [ - "bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6", - "dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreEvents.sol": { - "keccak256": "0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a", - "urls": [ - "bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08", - "dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreHook.sol": { - "keccak256": "0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4", - "urls": [ - "bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562", - "dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreKernel.sol": { - "keccak256": "0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89", - "urls": [ - "bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0", - "dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreRead.sol": { - "keccak256": "0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b", - "urls": [ - "bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db", - "dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreRegistration.sol": { - "keccak256": "0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b", - "urls": [ - "bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a", - "dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreWrite.sol": { - "keccak256": "0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba", - "urls": [ - "bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890", - "dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Memory.sol": { - "keccak256": "0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811", - "urls": [ - "bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392", - "dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/ResourceId.sol": { - "keccak256": "0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2", - "urls": [ - "bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0", - "dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Schema.sol": { - "keccak256": "0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7", - "urls": [ - "bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3", - "dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Slice.sol": { - "keccak256": "0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345", - "urls": [ - "bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4", - "dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Storage.sol": { - "keccak256": "0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3", - "urls": [ - "bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee", - "dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/StoreCore.sol": { - "keccak256": "0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861", - "urls": [ - "bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2", - "dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/StoreSwitch.sol": { - "keccak256": "0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40", - "urls": [ - "bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91", - "dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/index.sol": { - "keccak256": "0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85", - "urls": [ - "bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4", - "dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol": { - "keccak256": "0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394", - "urls": [ - "bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53", - "dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol": { - "keccak256": "0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64", - "urls": [ - "bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905", - "dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol": { - "keccak256": "0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c", - "urls": [ - "bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6", - "dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/Tables.sol": { - "keccak256": "0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09", - "urls": [ - "bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc", - "dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/constants.sol": { - "keccak256": "0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6", - "urls": [ - "bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168", - "dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/rightMask.sol": { - "keccak256": "0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275", - "urls": [ - "bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754", - "dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/storeHookTypes.sol": { - "keccak256": "0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572", - "urls": [ - "bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3", - "dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/storeResourceTypes.sol": { - "keccak256": "0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261", - "urls": [ - "bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586", - "dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol": { - "keccak256": "0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152", - "urls": [ - "bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e", - "dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol": { - "keccak256": "0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3", - "urls": [ - "bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea", - "dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol": { - "keccak256": "0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8", - "urls": [ - "bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3", - "dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/version.sol": { - "keccak256": "0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a", - "urls": [ - "bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a", - "dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IERC165.sol": { - "keccak256": "0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d", - "urls": [ - "bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7", - "dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IModule.sol": { - "keccak256": "0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57", - "urls": [ - "bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2", - "dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IModuleErrors.sol": { - "keccak256": "0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d", - "urls": [ - "bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea", - "dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/ISystemHook.sol": { - "keccak256": "0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721", - "urls": [ - "bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f", - "dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldContextConsumer.sol": { - "keccak256": "0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299", - "urls": [ - "bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255", - "dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldErrors.sol": { - "keccak256": "0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b", - "urls": [ - "bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf", - "dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldEvents.sol": { - "keccak256": "0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243", - "urls": [ - "bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57", - "dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldKernel.sol": { - "keccak256": "0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b", - "urls": [ - "bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092", - "dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/System.sol": { - "keccak256": "0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd", - "urls": [ - "bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f", - "dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/WorldContext.sol": { - "keccak256": "0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9", - "urls": [ - "bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e", - "dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/WorldResourceId.sol": { - "keccak256": "0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee", - "urls": [ - "bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea", - "dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol": { - "keccak256": "0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc", - "urls": [ - "bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48", - "dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol": { - "keccak256": "0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4", - "urls": [ - "bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83", - "dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol": { - "keccak256": "0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17", - "urls": [ - "bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81", - "dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol": { - "keccak256": "0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c", - "urls": [ - "bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2", - "dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol": { - "keccak256": "0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35", - "urls": [ - "bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b", - "dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol": { - "keccak256": "0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800", - "urls": [ - "bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c", - "dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol": { - "keccak256": "0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c", - "urls": [ - "bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27", - "dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/constants.sol": { - "keccak256": "0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5", - "urls": [ - "bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22", - "dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/modules/init/types.sol": { - "keccak256": "0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc", - "urls": [ - "bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525", - "dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/revertWithBytes.sol": { - "keccak256": "0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5", - "urls": [ - "bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359", - "dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/worldResourceTypes.sol": { - "keccak256": "0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465", - "urls": [ - "bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea", - "dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk" - ], - "license": "MIT" - }, - "src/codegen/common.sol": { - "keccak256": "0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42", - "urls": [ - "bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085", - "dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7" - ], - "license": "MIT" - }, - "src/codegen/index.sol": { - "keccak256": "0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0", - "urls": [ - "bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2", - "dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R" - ], - "license": "MIT" - }, - "src/codegen/tables/Actions.sol": { - "keccak256": "0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef", - "urls": [ - "bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392", - "dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ" - ], - "license": "MIT" - }, - "src/codegen/tables/Admin.sol": { - "keccak256": "0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725", - "urls": [ - "bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614", - "dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ" - ], - "license": "MIT" - }, - "src/codegen/tables/CharacterEquipment.sol": { - "keccak256": "0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32", - "urls": [ - "bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2", - "dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB" - ], - "license": "MIT" - }, - "src/codegen/tables/Characters.sol": { - "keccak256": "0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98", - "urls": [ - "bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893", - "dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH" - ], - "license": "MIT" - }, - "src/codegen/tables/CombatEncounter.sol": { - "keccak256": "0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696", - "urls": [ - "bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405", - "dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq" - ], - "license": "MIT" - }, - "src/codegen/tables/Counters.sol": { - "keccak256": "0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d", - "urls": [ - "bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8", - "dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG" - ], - "license": "MIT" - }, - "src/codegen/tables/EntitiesAtPosition.sol": { - "keccak256": "0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501", - "urls": [ - "bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4", - "dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB" - ], - "license": "MIT" - }, - "src/codegen/tables/Items.sol": { - "keccak256": "0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f", - "urls": [ - "bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f", - "dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj" - ], - "license": "MIT" - }, - "src/codegen/tables/Levels.sol": { - "keccak256": "0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327", - "urls": [ - "bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4", - "dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp" - ], - "license": "MIT" - }, - "src/codegen/tables/MapConfig.sol": { - "keccak256": "0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27", - "urls": [ - "bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3", - "dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch" - ], - "license": "MIT" - }, - "src/codegen/tables/MatchEntity.sol": { - "keccak256": "0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2", - "urls": [ - "bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b", - "dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ" - ], - "license": "MIT" - }, - "src/codegen/tables/Mobs.sol": { - "keccak256": "0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3", - "urls": [ - "bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060", - "dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9" - ], - "license": "MIT" - }, - "src/codegen/tables/MobsByLevel.sol": { - "keccak256": "0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d", - "urls": [ - "bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5", - "dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7" - ], - "license": "MIT" - }, - "src/codegen/tables/Name.sol": { - "keccak256": "0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99", - "urls": [ - "bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4", - "dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81" - ], - "license": "MIT" - }, - "src/codegen/tables/NameExists.sol": { - "keccak256": "0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab", - "urls": [ - "bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf", - "dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC" - ], - "license": "MIT" - }, - "src/codegen/tables/Position.sol": { - "keccak256": "0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d", - "urls": [ - "bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa", - "dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7" - ], - "license": "MIT" - }, - "src/codegen/tables/RandomNumbers.sol": { - "keccak256": "0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22", - "urls": [ - "bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5", - "dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA" - ], - "license": "MIT" - }, - "src/codegen/tables/Spawned.sol": { - "keccak256": "0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c", - "urls": [ - "bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905", - "dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw" - ], - "license": "MIT" - }, - "src/codegen/tables/StarterItems.sol": { - "keccak256": "0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3", - "urls": [ - "bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3", - "dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso" - ], - "license": "MIT" - }, - "src/codegen/tables/Stats.sol": { - "keccak256": "0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891", - "urls": [ - "bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227", - "dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP" - ], - "license": "MIT" - }, - "src/codegen/tables/UltimateDominionConfig.sol": { - "keccak256": "0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58", - "urls": [ - "bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9", - "dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs" - ], - "license": "MIT" - }, - "src/codegen/world/IActionSystem.sol": { - "keccak256": "0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d", - "urls": [ - "bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f", - "dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw" - ], - "license": "MIT" - }, - "src/codegen/world/ICharacterSystem.sol": { - "keccak256": "0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235", - "urls": [ - "bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782", - "dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X" - ], - "license": "MIT" - }, - "src/codegen/world/ICombatSystem.sol": { - "keccak256": "0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09", - "urls": [ - "bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947", - "dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD" - ], - "license": "MIT" - }, - "src/codegen/world/IEquipmentSystem.sol": { - "keccak256": "0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3", - "urls": [ - "bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa", - "dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW" - ], - "license": "MIT" - }, - "src/codegen/world/IItemsSystem.sol": { - "keccak256": "0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b", - "urls": [ - "bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b", - "dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH" - ], - "license": "MIT" - }, - "src/codegen/world/ILootManagerSystem.sol": { - "keccak256": "0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864", - "urls": [ - "bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0", - "dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK" - ], - "license": "MIT" - }, - "src/codegen/world/IMapSystem.sol": { - "keccak256": "0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80", - "urls": [ - "bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e", - "dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72" - ], - "license": "MIT" - }, - "src/codegen/world/IMobSystem.sol": { - "keccak256": "0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391", - "urls": [ - "bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c", - "dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS" - ], - "license": "MIT" - }, - "src/codegen/world/IUltimateDominionConfigSystem.sol": { - "keccak256": "0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f", - "urls": [ - "bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56", - "dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf" - ], - "license": "MIT" - }, - "src/codegen/world/IWorld.sol": { - "keccak256": "0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4", - "urls": [ - "bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64", - "dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv" - ], - "license": "MIT" - }, - "src/interfaces/Structs.sol": { - "keccak256": "0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de", - "urls": [ - "bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5", - "dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "id": 206 -} \ No newline at end of file +{"abi":[{"type":"function","name":"UD___calculateMagicAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD___calculatePhysicalAttack","inputs":[{"name":"attackStats","type":"tuple","internalType":"struct PhysicalAttackStats","components":[{"name":"bonusDamage","type":"int256","internalType":"int256"},{"name":"armorPenetration","type":"int256","internalType":"int256"},{"name":"attackModifierBonus","type":"int256","internalType":"int256"},{"name":"critChanceBonus","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"}]},{"name":"attackerId","type":"bytes32","internalType":"bytes32"},{"name":"defenderId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"damage","type":"int256","internalType":"int256"},{"name":"hit","type":"bool","internalType":"bool"},{"name":"crit","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__applyEquipmentBonuses","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"modifiedStats","type":"tuple","internalType":"struct AdjustedCombatStats","components":[{"name":"adjustedStrength","type":"uint256","internalType":"uint256"},{"name":"adjustedAgility","type":"uint256","internalType":"uint256"},{"name":"adjustedIntelligence","type":"uint256","internalType":"uint256"},{"name":"adjustedArmor","type":"uint256","internalType":"uint256"},{"name":"adjustedMaxHp","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__assignActionToCharacter","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__calculateGoldDrop","inputs":[{"name":"mobLevel","type":"uint256","internalType":"uint256"},{"name":"randomNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dropAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__calculateItemDrop","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canUse","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createAction","inputs":[{"name":"actionType","type":"uint8","internalType":"enum ActionType"},{"name":"actionStats","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"dropChance","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"dropChances","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropGold","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItem","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__dropItems","inputs":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"characterIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__endTurn","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipAction","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__executeCombat","inputs":[{"name":"randomNumber","type":"uint256","internalType":"uint256"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"},{"name":"actions","type":"tuple[]","internalType":"struct Action[]","components":[{"name":"attackerEntityId","type":"bytes32","internalType":"bytes32"},{"name":"defenderEntityId","type":"bytes32","internalType":"bytes32"},{"name":"actionId","type":"bytes32","internalType":"bytes32"},{"name":"weaponId","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getArmorStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_ArmorStats","type":"tuple","internalType":"struct ArmorStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"armorModifier","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentItemsCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEncounter","inputs":[{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_encounterData","type":"tuple","internalType":"struct CombatEncounterData","components":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"},{"name":"currentTurn","type":"uint256","internalType":"uint256"},{"name":"maxTurns","type":"uint256","internalType":"uint256"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getLootManagerSystem","inputs":[],"outputs":[{"name":"_lootManager","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMobId","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMobPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"strength","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"UD__getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getSpawnCounter","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"UD__getStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct StarterItemsData","components":[{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"agiModifier","type":"int256","internalType":"int256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"hitPointModifier","type":"int256","internalType":"int256"},{"name":"intModifier","type":"int256","internalType":"int256"},{"name":"maxDamage","type":"uint256","internalType":"uint256"},{"name":"minDamage","type":"uint256","internalType":"uint256"},{"name":"minLevel","type":"uint256","internalType":"uint256"},{"name":"strModifier","type":"int256","internalType":"int256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isItemOwner","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"participants","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isParticipant","inputs":[{"name":"playerId","type":"bytes32","internalType":"bytes32"},{"name":"encounterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_isParticipant","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidMob","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__isValidPvE","inputs":[{"name":"attackers","type":"bytes32[]","internalType":"bytes32[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isValidPvE","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawnMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD___calculateMagicAttack()":"e0cac377","UD___calculatePhysicalAttack((int256,int256,int256,int256,uint8[]),bytes32,bytes32,uint256,uint256)":"bf81ff5d","UD__applyEquipmentBonuses(bytes32)":"54f1f2db","UD__assignActionToCharacter(bytes32,bytes32)":"854cd561","UD__calculateGoldDrop(uint256,uint256)":"c3505171","UD__calculateItemDrop(uint256,uint256)":"2ef4cfcb","UD__checkRequirements(bytes32,uint256)":"bf4dbebc","UD__createAction(uint8,bytes)":"c3344bd2","UD__createItem(uint8,uint256,uint256,bytes,string)":"c2647a81","UD__createItems(uint8[],uint256[],uint256[],bytes[],string[])":"8a2d4e05","UD__createMatch(uint8,bytes32[],bytes32[])":"3e602b01","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__dropGold(bytes32,uint256)":"fda0ce50","UD__dropItem(uint256,uint256,bytes32)":"88c571e1","UD__dropItems(uint256[],uint256[],bytes32[])":"e45cde14","UD__endTurn(bytes32,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"1f357129","UD__enterGame(bytes32)":"b968fa3a","UD__equipAction(bytes32,bytes32)":"3d37a73e","UD__equipItems(bytes32,uint256[])":"2d9ac2be","UD__executeCombat(uint256,bytes32,(bytes32,bytes32,bytes32,uint256)[])":"a0ba1f1e","UD__getArmorStats(uint256)":"e75aa93b","UD__getCharacterToken()":"49d8cf02","UD__getCharacterTokenId(bytes32)":"d97302d0","UD__getClass(bytes32)":"0ae6f9ab","UD__getCurrentAvailableLevel(uint256)":"d453e623","UD__getCurrentItemsCounter()":"4652f280","UD__getEncounter(bytes32)":"55faf03a","UD__getEntitiesAtPosition(uint16,uint16)":"d0f8a4f5","UD__getEntropy()":"b5c691c7","UD__getExperience(bytes32)":"a8b79e60","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getLootManagerSystem()":"f2cb96f2","UD__getMob(bytes32)":"5ac36570","UD__getMob(uint256)":"622834d0","UD__getMobId(bytes32)":"53d64640","UD__getMobPosition(bytes32)":"8b3f8277","UD__getMonsterStats(bytes32)":"e6c22e06","UD__getMonsterStats(uint256)":"91b22373","UD__getName(bytes32)":"e902af7a","UD__getNpcStats(bytes32)":"a17a6b7f","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(bytes32)":"777c2caf","UD__getOwnerAddress(bytes32)":"4f10aabc","UD__getPlayerEntityId(uint256)":"02ee03fa","UD__getPythProvider()":"e24cefd9","UD__getSpawnCounter(bytes32)":"f4e1633b","UD__getStarterItems(uint8)":"b8bfeca1","UD__getStats(bytes32)":"14b13b0e","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isAtPosition(bytes32,uint16,uint16)":"f48a3972","UD__isEquipped(bytes32,uint256)":"7273e39a","UD__isItemOwner(uint256,address)":"b3634118","UD__isParticipant(address,bytes32[])":"18853912","UD__isParticipant(bytes32,bytes32)":"e9958ea4","UD__isValidCharacterId(bytes32)":"fa1becc4","UD__isValidMob(bytes32)":"bace814a","UD__isValidOwner(bytes32,address)":"43def638","UD__isValidPvE(bytes32[],bytes32[],uint16,uint16)":"c6d5525b","UD__issueStarterItems(bytes32)":"f9d175ed","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(bytes32,uint16,uint16)":"d1138fa1","UD__rollStats(bytes32,bytes32,uint8)":"18f14781","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(bytes32)":"7e29a6f6","UD__spawnMob(uint256,uint16,uint16)":"15bc4248","UD__unequipItem(bytes32,uint256)":"7a190324","UD__updateTokenUri(bytes32,string)":"ecd73f84","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UD___calculateMagicAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"bonusDamage\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"armorPenetration\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"attackModifierBonus\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"critChanceBonus\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"}],\"internalType\":\"struct PhysicalAttackStats\",\"name\":\"attackStats\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"attackerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD___calculatePhysicalAttack\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"damage\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"hit\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"crit\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__applyEquipmentBonuses\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"adjustedStrength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedAgility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedIntelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedArmor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"adjustedMaxHp\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"class\",\"type\":\"uint256\"}],\"internalType\":\"struct AdjustedCombatStats\",\"name\":\"modifiedStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"name\":\"UD__assignActionToCharacter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"}],\"name\":\"UD__calculateGoldDrop\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dropAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__calculateItemDrop\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canUse\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"actionStats\",\"type\":\"bytes\"}],\"name\":\"UD__createAction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dropChance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"dropChances\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UD__dropGold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__dropItem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"characterIds\",\"type\":\"bytes32[]\"}],\"name\":\"UD__dropItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__endTurn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"}],\"name\":\"UD__equipAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"randomNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attackerEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"defenderEntityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"weaponId\",\"type\":\"uint256\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"UD__executeCombat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getArmorStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"armorModifier\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct ArmorStats\",\"name\":\"_ArmorStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCurrentItemsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getEncounter\",\"outputs\":[{\"components\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTurn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTurns\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct CombatEncounterData\",\"name\":\"_encounterData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getLootManagerSystem\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_lootManager\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMobPosition\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"storyPathIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__getSpawnCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__getStarterItems\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StarterItemsData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"int256\",\"name\":\"agiModifier\",\"type\":\"int256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"int256\",\"name\":\"hitPointModifier\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"intModifier\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDamage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"strModifier\",\"type\":\"int256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UD__isItemOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"participants\",\"type\":\"bytes32[]\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"playerId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"encounterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__isValidMob\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"UD__isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attackers\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__isValidPvE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isValidPvE\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"UD__spawnMob\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256\",\"dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087\",\"dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9\",\"dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD___calculateMagicAttack"},{"inputs":[{"internalType":"struct PhysicalAttackStats","name":"attackStats","type":"tuple","components":[{"internalType":"int256","name":"bonusDamage","type":"int256"},{"internalType":"int256","name":"armorPenetration","type":"int256"},{"internalType":"int256","name":"attackModifierBonus","type":"int256"},{"internalType":"int256","name":"critChanceBonus","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"}]},{"internalType":"bytes32","name":"attackerId","type":"bytes32"},{"internalType":"bytes32","name":"defenderId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD___calculatePhysicalAttack","outputs":[{"internalType":"int256","name":"damage","type":"int256"},{"internalType":"bool","name":"hit","type":"bool"},{"internalType":"bool","name":"crit","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__applyEquipmentBonuses","outputs":[{"internalType":"struct AdjustedCombatStats","name":"modifiedStats","type":"tuple","components":[{"internalType":"uint256","name":"adjustedStrength","type":"uint256"},{"internalType":"uint256","name":"adjustedAgility","type":"uint256"},{"internalType":"uint256","name":"adjustedIntelligence","type":"uint256"},{"internalType":"uint256","name":"adjustedArmor","type":"uint256"},{"internalType":"uint256","name":"adjustedMaxHp","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"class","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__assignActionToCharacter"},{"inputs":[{"internalType":"uint256","name":"mobLevel","type":"uint256"},{"internalType":"uint256","name":"randomNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__calculateGoldDrop","outputs":[{"internalType":"uint256","name":"dropAmount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__calculateItemDrop","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"canUse","type":"bool"}]},{"inputs":[{"internalType":"enum ActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"actionStats","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"UD__createAction","outputs":[{"internalType":"bytes32","name":"actionId","type":"bytes32"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"dropChance","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"uint256[]","name":"dropChances","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropGold"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItem"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes32[]","name":"characterIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__dropItems"},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"UD__endTurn"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipAction"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"randomNumber","type":"uint256"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"},{"internalType":"struct Action[]","name":"actions","type":"tuple[]","components":[{"internalType":"bytes32","name":"attackerEntityId","type":"bytes32"},{"internalType":"bytes32","name":"defenderEntityId","type":"bytes32"},{"internalType":"bytes32","name":"actionId","type":"bytes32"},{"internalType":"uint256","name":"weaponId","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"UD__executeCombat"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getArmorStats","outputs":[{"internalType":"struct ArmorStats","name":"_ArmorStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint256","name":"armorModifier","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCurrentItemsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getEncounter","outputs":[{"internalType":"struct CombatEncounterData","name":"_encounterData","type":"tuple","components":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"currentTurn","type":"uint256"},{"internalType":"uint256","name":"maxTurns","type":"uint256"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getLootManagerSystem","outputs":[{"internalType":"address","name":"_lootManager","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getMobPosition","outputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32[]","name":"storyPathIds","type":"bytes32[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"UD__getSpawnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"view","type":"function","name":"UD__getStarterItems","outputs":[{"internalType":"struct StarterItemsData","name":"data","type":"tuple","components":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"int256","name":"agiModifier","type":"int256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"int256","name":"hitPointModifier","type":"int256"},{"internalType":"int256","name":"intModifier","type":"int256"},{"internalType":"uint256","name":"maxDamage","type":"uint256"},{"internalType":"uint256","name":"minDamage","type":"uint256"},{"internalType":"uint256","name":"minLevel","type":"uint256"},{"internalType":"int256","name":"strModifier","type":"int256"}]}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isItemOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"participants","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"playerId","type":"bytes32"},{"internalType":"bytes32","name":"encounterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isParticipant","outputs":[{"internalType":"bool","name":"_isParticipant","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"UD__isValidMob","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"UD__isValidOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32[]","name":"attackers","type":"bytes32[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"UD__isValidPvE","outputs":[{"internalType":"bool","name":"_isValidPvE","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawnMob","outputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__updateTokenUri"},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26","urls":["bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256","dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9","urls":["bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087","dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828","urls":["bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9","dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"}},"version":1},"id":205} \ No newline at end of file diff --git a/packages/contracts/out/MapSystem.sol/MapSystem.json b/packages/contracts/out/MapSystem.sol/MapSystem.json index cd2cda53c..845602636 100644 --- a/packages/contracts/out/MapSystem.sol/MapSystem.json +++ b/packages/contracts/out/MapSystem.sol/MapSystem.json @@ -1,1783 +1 @@ -{ - "abi": [ - { - "type": "function", - "name": "_msgSender", - "inputs": [], - "outputs": [ - { - "name": "sender", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "_msgValue", - "inputs": [], - "outputs": [ - { - "name": "value", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "_world", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getEntitiesAtPosition", - "inputs": [ - { - "name": "x", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "y", - "type": "uint16", - "internalType": "uint16" - } - ], - "outputs": [ - { - "name": "entitiesAtPosition", - "type": "bytes32[]", - "internalType": "bytes32[]" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "isAtPosition", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "x", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "y", - "type": "uint16", - "internalType": "uint16" - } - ], - "outputs": [ - { - "name": "_isAtPosition", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "move", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "x", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "y", - "type": "uint16", - "internalType": "uint16" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "spawn", - "inputs": [ - { - "name": "entityId", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "supportsInterface", - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4", - "internalType": "bytes4" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "pure" - }, - { - "type": "event", - "name": "Store_SetRecord", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "indexed": true, - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false, - "internalType": "bytes32[]" - }, - { - "name": "staticData", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - }, - { - "name": "encodedLengths", - "type": "bytes32", - "indexed": false, - "internalType": "EncodedLengths" - }, - { - "name": "dynamicData", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Store_SpliceDynamicData", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "indexed": true, - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false, - "internalType": "bytes32[]" - }, - { - "name": "dynamicFieldIndex", - "type": "uint8", - "indexed": false, - "internalType": "uint8" - }, - { - "name": "start", - "type": "uint48", - "indexed": false, - "internalType": "uint48" - }, - { - "name": "deleteCount", - "type": "uint40", - "indexed": false, - "internalType": "uint40" - }, - { - "name": "encodedLengths", - "type": "bytes32", - "indexed": false, - "internalType": "EncodedLengths" - }, - { - "name": "data", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Store_SpliceStaticData", - "inputs": [ - { - "name": "tableId", - "type": "bytes32", - "indexed": true, - "internalType": "ResourceId" - }, - { - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false, - "internalType": "bytes32[]" - }, - { - "name": "start", - "type": "uint48", - "indexed": false, - "internalType": "uint48" - }, - { - "name": "data", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - }, - { - "type": "error", - "name": "EncodedLengths_InvalidLength", - "inputs": [ - { - "name": "length", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Slice_OutOfBounds", - "inputs": [ - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "start", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "end", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_IndexOutOfBounds", - "inputs": [ - { - "name": "length", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "accessedIndex", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidResourceType", - "inputs": [ - { - "name": "expected", - "type": "bytes2", - "internalType": "bytes2" - }, - { - "name": "resourceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "resourceIdString", - "type": "string", - "internalType": "string" - } - ] - }, - { - "type": "error", - "name": "Store_InvalidSplice", - "inputs": [ - { - "name": "startWithinField", - "type": "uint40", - "internalType": "uint40" - }, - { - "name": "deleteCount", - "type": "uint40", - "internalType": "uint40" - }, - { - "name": "fieldLength", - "type": "uint40", - "internalType": "uint40" - } - ] - }, - { - "type": "error", - "name": "World_AccessDenied", - "inputs": [ - { - "name": "resource", - "type": "string", - "internalType": "string" - }, - { - "name": "caller", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "error", - "name": "World_FunctionSelectorNotFound", - "inputs": [ - { - "name": "functionSelector", - "type": "bytes4", - "internalType": "bytes4" - } - ] - }, - { - "type": "error", - "name": "World_ResourceNotFound", - "inputs": [ - { - "name": "resourceId", - "type": "bytes32", - "internalType": "ResourceId" - }, - { - "name": "resourceIdString", - "type": "string", - "internalType": "string" - } - ] - } - ], - "bytecode": { - "object": "0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220053cba1e3ac40a56108edce34eefa1531cb77e974b1eb3bcf098a3497d365a8e64736f6c63430008180033", - "sourceMap": "412:4148:217:-:0;;;;;;;;;;;;;;;;;;;", - "linkReferences": { - "src/libraries/LibChunks.sol": { - "LibChunks": [ - { - "start": 3486, - "length": 20 - }, - { - "start": 3673, - "length": 20 - } - ] - } - } - }, - "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220053cba1e3ac40a56108edce34eefa1531cb77e974b1eb3bcf098a3497d365a8e64736f6c63430008180033", - "sourceMap": "412:4148:217:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:230;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:230;;;689:74;;677:2;662:18;1262:113:123;543:226:230;1755:239:217;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:230;;1401:2;1386:18;1616:110:123;1267:177:230;1580:169:217;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:217:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:217:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:217;;1279:70;;;;-1:-1:-1;;;1279:70:217;;2807:2:230;1279:70:217;;;2789:21:230;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:217;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:217;;3212:2:230;1360:67:217;;;3194:21:230;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:217;3010:349:230;1360:67:217;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:217;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:217;;605:69;;;;-1:-1:-1;;;605:69:217;;3566:2:230;605:69:217;;;3548:21:230;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:217;3364:399:230;605:69:217;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:217;;3970:2:230;685:62:217;;;3952:21:230;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:217;3768:345:230;685:62:217;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:217;;4320:2:230;885:37:217;;;4302:21:230;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:217;4118:339:230;885:37:217;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:217;;4664:2:230;932:38:217;;;4646:21:230;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:217;4462:339:230;932:38:217;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:217;;5008:2:230;980:91:217;;;4990:21:230;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:217;4806:354:230;980:91:217;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:191:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:191;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:182:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:182;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:182:o;4071:290:179:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:179;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:179:o;2592:291:193:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:193;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:193:o;5796:354:191:-;7947:22;;;16149:3:230;16145:16;;;16054:66;16141:25;;;7947:22:191;;;;16129:38:230;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:191;;;;;;;;;6023:1;16238:11:230;;;6009:16:191;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:191;;-1:-1:-1;;6023:1:191;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:191;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:193:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:193;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:230;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:193;;;;-1:-1:-1;;4107:27:193;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:182:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:182;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;9759:28:182;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:185:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:217:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:217;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:217:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:217;;7009:2:230;4393:63:217;;;6991:21:230;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:217;6807:355:230;4393:63:217;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:217;;7369:2:230;2296:80:217;;;7351:21:230;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:217;7167:403:230;2296:80:217;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:230;;1401:2;1386:18;;1267:177;2515:42:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:217;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:230;2594:9:217;;:20;;1386:18:230;;2594:38:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:217;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:230;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:217;;;;-1:-1:-1;;2754:148:217;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:217;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:191:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:191;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:191;-1:-1:-1;;;;7036:160:191:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:182:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:182;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;12402:28:182;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:182;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:217:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:188:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:188;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:230;18911:18;;3713:52:107;18794:248:230;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:217:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:217;;3609:106;-1:-1:-1;3609:106:217:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:230;25536:15;;;45340:92:45;;;25518:34:230;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:230;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:230;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:230;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:230;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:230;;51494:30:45;27964:279:230;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:230;;;1386:18;;7664:67:24;1267:177:230;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:230;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:230;30142:79;;2092:30:124;;;30130:92:230;2092:30:124;;30238:12:230;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:193;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:193;6914:97;14:332:230;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:230;;1710:439;-1:-1:-1;;;;;1710:439:230:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:230;;2420:180;-1:-1:-1;2420:180:230:o;5165:184::-;-1:-1:-1;;;5214:1:230;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:230;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:230;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:230;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:230;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:230;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:230;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:230;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:230;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:230;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:230;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:230:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:230;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:230:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:230:o;10716:184::-;-1:-1:-1;;;10765:1:230;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:230:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:230;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:230;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:230;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:230;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:230:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:230;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:230:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:230;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:230:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:230;;15702:184;-1:-1:-1;15702:184:230:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:230:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:230:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:230;;21043:640;-1:-1:-1;;;;;;;21043:640:230:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:230:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:230:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:230:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:230;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:230:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:230:o", - "linkReferences": { - "src/libraries/LibChunks.sol": { - "LibChunks": [ - { - "start": 3454, - "length": 20 - }, - { - "start": 3641, - "length": 20 - } - ] - } - } - }, - "methodIdentifiers": { - "_msgSender()": "119df25f", - "_msgValue()": "45ec9354", - "_world()": "e1af802c", - "getEntitiesAtPosition(uint16,uint16)": "69e10c7b", - "isAtPosition(bytes32,uint16,uint16)": "3fbf0c5a", - "move(bytes32,uint16,uint16)": "953717d1", - "spawn(bytes32)": "911c37ae", - "supportsInterface(bytes4)": "01ffc9a7" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9\",\"dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947\",\"dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56\",\"dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.24+commit.e11b9ed9" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "type": "error", - "name": "EncodedLengths_InvalidLength" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "start", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "end", - "type": "uint256" - } - ], - "type": "error", - "name": "Slice_OutOfBounds" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accessedIndex", - "type": "uint256" - } - ], - "type": "error", - "name": "Store_IndexOutOfBounds" - }, - { - "inputs": [ - { - "internalType": "bytes2", - "name": "expected", - "type": "bytes2" - }, - { - "internalType": "ResourceId", - "name": "resourceId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "resourceIdString", - "type": "string" - } - ], - "type": "error", - "name": "Store_InvalidResourceType" - }, - { - "inputs": [ - { - "internalType": "uint40", - "name": "startWithinField", - "type": "uint40" - }, - { - "internalType": "uint40", - "name": "deleteCount", - "type": "uint40" - }, - { - "internalType": "uint40", - "name": "fieldLength", - "type": "uint40" - } - ], - "type": "error", - "name": "Store_InvalidSplice" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "resource", - "type": "string" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "type": "error", - "name": "World_AccessDenied" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "functionSelector", - "type": "bytes4" - } - ], - "type": "error", - "name": "World_FunctionSelectorNotFound" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "resourceId", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "resourceIdString", - "type": "string" - } - ], - "type": "error", - "name": "World_ResourceNotFound" - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32", - "indexed": true - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false - }, - { - "internalType": "bytes", - "name": "staticData", - "type": "bytes", - "indexed": false - }, - { - "internalType": "EncodedLengths", - "name": "encodedLengths", - "type": "bytes32", - "indexed": false - }, - { - "internalType": "bytes", - "name": "dynamicData", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "Store_SetRecord", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32", - "indexed": true - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false - }, - { - "internalType": "uint8", - "name": "dynamicFieldIndex", - "type": "uint8", - "indexed": false - }, - { - "internalType": "uint48", - "name": "start", - "type": "uint48", - "indexed": false - }, - { - "internalType": "uint40", - "name": "deleteCount", - "type": "uint40", - "indexed": false - }, - { - "internalType": "EncodedLengths", - "name": "encodedLengths", - "type": "bytes32", - "indexed": false - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "Store_SpliceDynamicData", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "ResourceId", - "name": "tableId", - "type": "bytes32", - "indexed": true - }, - { - "internalType": "bytes32[]", - "name": "keyTuple", - "type": "bytes32[]", - "indexed": false - }, - { - "internalType": "uint48", - "name": "start", - "type": "uint48", - "indexed": false - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "Store_SpliceStaticData", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "_msgSender", - "outputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "pure", - "type": "function", - "name": "_msgValue", - "outputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "_world", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint16", - "name": "x", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "y", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getEntitiesAtPosition", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "entitiesAtPosition", - "type": "bytes32[]" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - }, - { - "internalType": "uint16", - "name": "x", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "y", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function", - "name": "isAtPosition", - "outputs": [ - { - "internalType": "bool", - "name": "_isAtPosition", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - }, - { - "internalType": "uint16", - "name": "x", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "y", - "type": "uint16" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "move" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "entityId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "spawn" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function", - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "_msgSender()": { - "returns": { - "sender": "The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract." - } - }, - "_msgValue()": { - "returns": { - "value": "The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract." - } - }, - "_world()": { - "returns": { - "_0": "The address of the World contract that routed the call to this WorldContextConsumer." - } - }, - "supportsInterface(bytes4)": { - "params": { - "interfaceId": "The ID of the interface in question." - }, - "returns": { - "_0": "True if the interface is supported, false otherwise." - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "_msgSender()": { - "notice": "Extract the `msg.sender` from the context appended to the calldata." - }, - "_msgValue()": { - "notice": "Extract the `msg.value` from the context appended to the calldata." - }, - "_world()": { - "notice": "Get the address of the World contract that routed the call to this WorldContextConsumer." - }, - "supportsInterface(bytes4)": { - "notice": "Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)" - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "@codegen/=src/codegen/", - "@erc1155/=lib/ERC1155-puppet/", - "@interfaces/=src/interfaces/", - "@latticexyz/=node_modules/@latticexyz/", - "@libraries/=src/libraries/", - "@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/", - "@openzeppelin/=node_modules/@openzeppelin/contracts/", - "@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/", - "@systems/=src/systems/", - "@tables/=src/codegen/tables/", - "@test/=test/", - "@world/=src/codegen/world/", - "ERC1155-puppet/=lib/ERC1155-puppet/", - "ds-test/=node_modules/ds-test/src/", - "forge-std/=node_modules/forge-std/src/" - ], - "optimizer": { - "enabled": true, - "runs": 3000 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/systems/MapSystem.sol": "MapSystem" - }, - "evmVersion": "paris", - "libraries": {} - }, - "sources": { - "node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol": { - "keccak256": "0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a", - "urls": [ - "bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44", - "dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Bytes.sol": { - "keccak256": "0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8", - "urls": [ - "bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35", - "dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/EncodedLengths.sol": { - "keccak256": "0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774", - "urls": [ - "bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09", - "dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/FieldLayout.sol": { - "keccak256": "0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658", - "urls": [ - "bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7", - "dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Hook.sol": { - "keccak256": "0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e", - "urls": [ - "bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3", - "dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IERC165.sol": { - "keccak256": "0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927", - "urls": [ - "bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2", - "dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol": { - "keccak256": "0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa", - "urls": [ - "bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba", - "dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol": { - "keccak256": "0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53", - "urls": [ - "bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817", - "dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/ISchemaErrors.sol": { - "keccak256": "0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441", - "urls": [ - "bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d", - "dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/ISliceErrors.sol": { - "keccak256": "0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c", - "urls": [ - "bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883", - "dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStore.sol": { - "keccak256": "0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706", - "urls": [ - "bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc", - "dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreErrors.sol": { - "keccak256": "0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912", - "urls": [ - "bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6", - "dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreEvents.sol": { - "keccak256": "0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a", - "urls": [ - "bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08", - "dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreHook.sol": { - "keccak256": "0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4", - "urls": [ - "bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562", - "dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreKernel.sol": { - "keccak256": "0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89", - "urls": [ - "bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0", - "dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreRead.sol": { - "keccak256": "0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b", - "urls": [ - "bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db", - "dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreRegistration.sol": { - "keccak256": "0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b", - "urls": [ - "bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a", - "dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/IStoreWrite.sol": { - "keccak256": "0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba", - "urls": [ - "bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890", - "dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Memory.sol": { - "keccak256": "0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811", - "urls": [ - "bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392", - "dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/ResourceId.sol": { - "keccak256": "0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2", - "urls": [ - "bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0", - "dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Schema.sol": { - "keccak256": "0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7", - "urls": [ - "bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3", - "dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Slice.sol": { - "keccak256": "0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345", - "urls": [ - "bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4", - "dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/Storage.sol": { - "keccak256": "0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3", - "urls": [ - "bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee", - "dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/StoreCore.sol": { - "keccak256": "0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861", - "urls": [ - "bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2", - "dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/StoreSwitch.sol": { - "keccak256": "0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40", - "urls": [ - "bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91", - "dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/index.sol": { - "keccak256": "0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85", - "urls": [ - "bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4", - "dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol": { - "keccak256": "0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394", - "urls": [ - "bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53", - "dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol": { - "keccak256": "0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64", - "urls": [ - "bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905", - "dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol": { - "keccak256": "0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c", - "urls": [ - "bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6", - "dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/codegen/tables/Tables.sol": { - "keccak256": "0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09", - "urls": [ - "bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc", - "dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/constants.sol": { - "keccak256": "0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6", - "urls": [ - "bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168", - "dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/rightMask.sol": { - "keccak256": "0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275", - "urls": [ - "bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754", - "dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/storeHookTypes.sol": { - "keccak256": "0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572", - "urls": [ - "bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3", - "dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/storeResourceTypes.sol": { - "keccak256": "0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261", - "urls": [ - "bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586", - "dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol": { - "keccak256": "0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152", - "urls": [ - "bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e", - "dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol": { - "keccak256": "0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3", - "urls": [ - "bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea", - "dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol": { - "keccak256": "0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8", - "urls": [ - "bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3", - "dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/store/src/version.sol": { - "keccak256": "0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a", - "urls": [ - "bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a", - "dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol": { - "keccak256": "0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7", - "urls": [ - "bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9", - "dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/AccessControl.sol": { - "keccak256": "0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e", - "urls": [ - "bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899", - "dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IERC165.sol": { - "keccak256": "0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d", - "urls": [ - "bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7", - "dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IModule.sol": { - "keccak256": "0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57", - "urls": [ - "bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2", - "dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IModuleErrors.sol": { - "keccak256": "0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d", - "urls": [ - "bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea", - "dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/ISystemHook.sol": { - "keccak256": "0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721", - "urls": [ - "bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f", - "dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldContextConsumer.sol": { - "keccak256": "0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299", - "urls": [ - "bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255", - "dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldErrors.sol": { - "keccak256": "0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b", - "urls": [ - "bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf", - "dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldEvents.sol": { - "keccak256": "0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243", - "urls": [ - "bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57", - "dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/IWorldKernel.sol": { - "keccak256": "0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b", - "urls": [ - "bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092", - "dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/System.sol": { - "keccak256": "0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd", - "urls": [ - "bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f", - "dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/SystemCall.sol": { - "keccak256": "0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af", - "urls": [ - "bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5", - "dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/WorldContext.sol": { - "keccak256": "0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9", - "urls": [ - "bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e", - "dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/WorldResourceId.sol": { - "keccak256": "0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee", - "urls": [ - "bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea", - "dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol": { - "keccak256": "0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc", - "urls": [ - "bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48", - "dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol": { - "keccak256": "0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4", - "urls": [ - "bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83", - "dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol": { - "keccak256": "0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17", - "urls": [ - "bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81", - "dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol": { - "keccak256": "0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c", - "urls": [ - "bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2", - "dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol": { - "keccak256": "0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35", - "urls": [ - "bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b", - "dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol": { - "keccak256": "0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800", - "urls": [ - "bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c", - "dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol": { - "keccak256": "0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c", - "urls": [ - "bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27", - "dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/Balances.sol": { - "keccak256": "0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d", - "urls": [ - "bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a", - "dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol": { - "keccak256": "0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926", - "urls": [ - "bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791", - "dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol": { - "keccak256": "0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614", - "urls": [ - "bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597", - "dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol": { - "keccak256": "0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc", - "urls": [ - "bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e", - "dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol": { - "keccak256": "0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f", - "urls": [ - "bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674", - "dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/codegen/tables/Systems.sol": { - "keccak256": "0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c", - "urls": [ - "bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7", - "dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/constants.sol": { - "keccak256": "0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5", - "urls": [ - "bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22", - "dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/modules/init/types.sol": { - "keccak256": "0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc", - "urls": [ - "bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525", - "dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/revertWithBytes.sol": { - "keccak256": "0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5", - "urls": [ - "bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359", - "dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/systemHookTypes.sol": { - "keccak256": "0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a", - "urls": [ - "bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d", - "dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo" - ], - "license": "MIT" - }, - "node_modules/@latticexyz/world/src/worldResourceTypes.sol": { - "keccak256": "0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465", - "urls": [ - "bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea", - "dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk" - ], - "license": "MIT" - }, - "src/codegen/common.sol": { - "keccak256": "0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42", - "urls": [ - "bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085", - "dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7" - ], - "license": "MIT" - }, - "src/codegen/index.sol": { - "keccak256": "0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0", - "urls": [ - "bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2", - "dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R" - ], - "license": "MIT" - }, - "src/codegen/tables/Actions.sol": { - "keccak256": "0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef", - "urls": [ - "bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392", - "dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ" - ], - "license": "MIT" - }, - "src/codegen/tables/Admin.sol": { - "keccak256": "0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725", - "urls": [ - "bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614", - "dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ" - ], - "license": "MIT" - }, - "src/codegen/tables/CharacterEquipment.sol": { - "keccak256": "0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32", - "urls": [ - "bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2", - "dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB" - ], - "license": "MIT" - }, - "src/codegen/tables/Characters.sol": { - "keccak256": "0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98", - "urls": [ - "bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893", - "dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH" - ], - "license": "MIT" - }, - "src/codegen/tables/CombatEncounter.sol": { - "keccak256": "0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696", - "urls": [ - "bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405", - "dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq" - ], - "license": "MIT" - }, - "src/codegen/tables/Counters.sol": { - "keccak256": "0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d", - "urls": [ - "bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8", - "dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG" - ], - "license": "MIT" - }, - "src/codegen/tables/EntitiesAtPosition.sol": { - "keccak256": "0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501", - "urls": [ - "bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4", - "dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB" - ], - "license": "MIT" - }, - "src/codegen/tables/Items.sol": { - "keccak256": "0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f", - "urls": [ - "bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f", - "dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj" - ], - "license": "MIT" - }, - "src/codegen/tables/Levels.sol": { - "keccak256": "0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327", - "urls": [ - "bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4", - "dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp" - ], - "license": "MIT" - }, - "src/codegen/tables/MapConfig.sol": { - "keccak256": "0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27", - "urls": [ - "bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3", - "dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch" - ], - "license": "MIT" - }, - "src/codegen/tables/MatchEntity.sol": { - "keccak256": "0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2", - "urls": [ - "bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b", - "dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ" - ], - "license": "MIT" - }, - "src/codegen/tables/Mobs.sol": { - "keccak256": "0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3", - "urls": [ - "bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060", - "dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9" - ], - "license": "MIT" - }, - "src/codegen/tables/MobsByLevel.sol": { - "keccak256": "0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d", - "urls": [ - "bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5", - "dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7" - ], - "license": "MIT" - }, - "src/codegen/tables/Name.sol": { - "keccak256": "0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99", - "urls": [ - "bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4", - "dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81" - ], - "license": "MIT" - }, - "src/codegen/tables/NameExists.sol": { - "keccak256": "0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab", - "urls": [ - "bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf", - "dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC" - ], - "license": "MIT" - }, - "src/codegen/tables/Position.sol": { - "keccak256": "0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d", - "urls": [ - "bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa", - "dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7" - ], - "license": "MIT" - }, - "src/codegen/tables/RandomNumbers.sol": { - "keccak256": "0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22", - "urls": [ - "bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5", - "dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA" - ], - "license": "MIT" - }, - "src/codegen/tables/Spawned.sol": { - "keccak256": "0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c", - "urls": [ - "bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905", - "dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw" - ], - "license": "MIT" - }, - "src/codegen/tables/StarterItems.sol": { - "keccak256": "0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3", - "urls": [ - "bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3", - "dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso" - ], - "license": "MIT" - }, - "src/codegen/tables/Stats.sol": { - "keccak256": "0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891", - "urls": [ - "bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227", - "dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP" - ], - "license": "MIT" - }, - "src/codegen/tables/UltimateDominionConfig.sol": { - "keccak256": "0x16de02a3b0aa88fae2b0349114d0ce2532601dc2befbdc04f5ff837249f85d58", - "urls": [ - "bzz-raw://15e52e9d0595d260e379d6efd9d5e03ef49196dd9bcb051f41dfe39a4334e7c9", - "dweb:/ipfs/QmWnEHG6fEEWqEtyZqR3ZUjUN9kbC1NCXu3EJ3ZwyYcTgs" - ], - "license": "MIT" - }, - "src/codegen/world/IActionSystem.sol": { - "keccak256": "0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d", - "urls": [ - "bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f", - "dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw" - ], - "license": "MIT" - }, - "src/codegen/world/ICharacterSystem.sol": { - "keccak256": "0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235", - "urls": [ - "bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782", - "dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X" - ], - "license": "MIT" - }, - "src/codegen/world/ICombatSystem.sol": { - "keccak256": "0x62fb71a6a0ceb843ed6178dd8e17ad803b31757b8d8ed4b5396bbcc76c9c4b09", - "urls": [ - "bzz-raw://e12826f85d947a53a72f46320862d5c7f43278a1911e20e2a52f58341538f947", - "dweb:/ipfs/QmdNdsquybgjTh4eJvc9XFf2pVUJMnVFP2cbDSHkAWFnWD" - ], - "license": "MIT" - }, - "src/codegen/world/IEquipmentSystem.sol": { - "keccak256": "0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3", - "urls": [ - "bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa", - "dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW" - ], - "license": "MIT" - }, - "src/codegen/world/IItemsSystem.sol": { - "keccak256": "0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b", - "urls": [ - "bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b", - "dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH" - ], - "license": "MIT" - }, - "src/codegen/world/ILootManagerSystem.sol": { - "keccak256": "0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864", - "urls": [ - "bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0", - "dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK" - ], - "license": "MIT" - }, - "src/codegen/world/IMapSystem.sol": { - "keccak256": "0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80", - "urls": [ - "bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e", - "dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72" - ], - "license": "MIT" - }, - "src/codegen/world/IMobSystem.sol": { - "keccak256": "0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391", - "urls": [ - "bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c", - "dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS" - ], - "license": "MIT" - }, - "src/codegen/world/IUltimateDominionConfigSystem.sol": { - "keccak256": "0x2a8e110dc8f1137e5c360211681ad9e5e919e0d7c74cd49cda08bad35b42ea4f", - "urls": [ - "bzz-raw://3b048445bea00e1427f215add1e236adda393256089fc04edae8b69d77bf9e56", - "dweb:/ipfs/QmbM8cvoQjskMR8ozg28Rzj6AgvwNwRepDkFYymS3Xispf" - ], - "license": "MIT" - }, - "src/codegen/world/IWorld.sol": { - "keccak256": "0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4", - "urls": [ - "bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64", - "dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv" - ], - "license": "MIT" - }, - "src/interfaces/Structs.sol": { - "keccak256": "0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de", - "urls": [ - "bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5", - "dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1" - ], - "license": "MIT" - }, - "src/libraries/LibChunks.sol": { - "keccak256": "0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767", - "urls": [ - "bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9", - "dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv" - ], - "license": "MIT" - }, - "src/systems/MapSystem.sol": { - "keccak256": "0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8", - "urls": [ - "bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732", - "dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "id": 217 -} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220c47d61b49bc23938b62fc8aa7c841674bfa06b7af56051568dd65a107a781da864736f6c63430008180033","sourceMap":"412:4148:216:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220c47d61b49bc23938b62fc8aa7c841674bfa06b7af56051568dd65a107a781da864736f6c63430008180033","sourceMap":"412:4148:216:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:228;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:228;;;689:74;;677:2;662:18;1262:113:123;543:226:228;1755:239:216;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:228;;1401:2;1386:18;1616:110:123;1267:177:228;1580:169:216;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:216:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:216:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:216;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:216;;1279:70;;;;-1:-1:-1;;;1279:70:216;;2807:2:228;1279:70:216;;;2789:21:228;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:216;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:216;;3212:2:228;1360:67:216;;;3194:21:228;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:216;3010:349:228;1360:67:216;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:216;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:216;;605:69;;;;-1:-1:-1;;;605:69:216;;3566:2:228;605:69:216;;;3548:21:228;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:216;3364:399:228;605:69:216;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:216;;3970:2:228;685:62:216;;;3952:21:228;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:216;3768:345:228;685:62:216;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:216;;4320:2:228;885:37:216;;;4302:21:228;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:216;4118:339:228;885:37:216;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:216;;4664:2:228;932:38:216;;;4646:21:228;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:216;4462:339:228;932:38:216;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:216;;5008:2:228;980:91:216;;;4990:21:228;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:216;4806:354:228;980:91:216;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:190:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:190;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:181:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:181;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:181:o;4071:290:178:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:178;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:178:o;2592:291:192:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:192;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:192:o;5796:354:190:-;7947:22;;;16149:3:228;16145:16;;;16054:66;16141:25;;;7947:22:190;;;;16129:38:228;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:190;;;;;;;;;6023:1;16238:11:228;;;6009:16:190;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:190;;-1:-1:-1;;6023:1:190;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:190;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:192:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:192;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:228;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:192;;;;-1:-1:-1;;4107:27:192;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:181:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:181;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;9759:28:181;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:184:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:216:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:216;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:216:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:216;;7009:2:228;4393:63:216;;;6991:21:228;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:216;6807:355:228;4393:63:216;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:216;;7369:2:228;2296:80:216;;;7351:21:228;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:216;7167:403:228;2296:80:216;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:228;;1401:2;1386:18;;1267:177;2515:42:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:216;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:228;2594:9:216;;:20;;1386:18:228;;2594:38:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:216;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:228;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:216;;;;-1:-1:-1;;2754:148:216;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:216;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:190:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:190;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:190;-1:-1:-1;;;;7036:160:190:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:181:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:181;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;12402:28:181;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:181;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:216:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:187:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:187;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:228;18911:18;;3713:52:107;18794:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:216:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:216;;3609:106;-1:-1:-1;3609:106:216:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:228;25536:15;;;45340:92:45;;;25518:34:228;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:228;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:228;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:228;;51494:30:45;27964:279:228;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:228;;;1386:18;;7664:67:24;1267:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:228;30142:79;;2092:30:124;;;30130:92:228;2092:30:124;;30238:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:192;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:192;6914:97;14:332:228;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:228;;1710:439;-1:-1:-1;;;;;1710:439:228:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:228;;2420:180;-1:-1:-1;2420:180:228:o;5165:184::-;-1:-1:-1;;;5214:1:228;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:228;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:228;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:228;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:228;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:228;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:228;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:228;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:228;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:228;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:228;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:228:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:228;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:228:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:228:o;10716:184::-;-1:-1:-1;;;10765:1:228;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:228:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:228;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:228;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:228;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:228;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:228:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:228;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:228:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:228;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:228:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:228;;15702:184;-1:-1:-1;15702:184:228:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:228:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:228:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:228;;21043:640;-1:-1:-1;;;;;;;21043:640:228:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:228:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:228:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:228:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:228;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:228:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:228:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256\",\"dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087\",\"dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9\",\"dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26","urls":["bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256","dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9","urls":["bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087","dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828","urls":["bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9","dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":216} \ No newline at end of file diff --git a/packages/contracts/script/PostDeploy.s.sol b/packages/contracts/script/PostDeploy.s.sol index 956ab0fa8..71d1df6cc 100644 --- a/packages/contracts/script/PostDeploy.s.sol +++ b/packages/contracts/script/PostDeploy.s.sol @@ -52,8 +52,6 @@ import {IERC1155} from "@erc1155/IERC1155.sol"; import {registerERC1155} from "@erc1155/registerERC1155.sol"; import {_erc1155SystemId} from "@erc1155/utils.sol"; - - import "forge-std/console2.sol"; import "forge-std/StdJson.sol"; @@ -91,17 +89,13 @@ contract PostDeploy is Script { vm.startBroadcast(deployerPrivateKey); if (block.chainid == 31337) { // Set entropy contracts - address multicall3 = address(new Multicall3()); address mockEntropy = address(new MockEntropy()); - UltimateDominionConfig.setMulticall(multicall3); UltimateDominionConfig.setEntropy(mockEntropy); UltimateDominionConfig.setPythProvider(address(1)); } else if (block.chainid == 84532) { - UltimateDominionConfig.setMulticall(0xcA11bde05977b3631167028862bE2a173976CA11); UltimateDominionConfig.setEntropy(0x41c9e39574F40Ad34c79f1C99B66A45eFB830d4c); UltimateDominionConfig.setPythProvider(0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344); } else if (block.chainid == 8453) { - UltimateDominionConfig.setMulticall(0xcA11bde05977b3631167028862bE2a173976CA11); UltimateDominionConfig.setEntropy(0x6E7D74FA7d5c90FEF9F0512987605a6d546181Bb); UltimateDominionConfig.setPythProvider(0x52DeaA1c84233F7bb8C8A45baeDE41091c616506); } diff --git a/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol b/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol index e9c793b22..f71d6bcc6 100644 --- a/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol +++ b/packages/contracts/src/codegen/tables/UltimateDominionConfig.sol @@ -23,7 +23,6 @@ struct UltimateDominionConfigData { address entropy; address pythProvider; address items; - address multicall; } library UltimateDominionConfig { @@ -31,12 +30,12 @@ library UltimateDominionConfig { ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000556c74696d617465446f6d696e696f6e); FieldLayout constant _fieldLayout = - FieldLayout.wrap(0x0079070001141414141414000000000000000000000000000000000000000000); + FieldLayout.wrap(0x0065060001141414141400000000000000000000000000000000000000000000); // Hex-encoded key schema of () Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000); - // Hex-encoded value schema of (bool, address, address, address, address, address, address) - Schema constant _valueSchema = Schema.wrap(0x0079070060616161616161000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bool, address, address, address, address, address) + Schema constant _valueSchema = Schema.wrap(0x0065060060616161616100000000000000000000000000000000000000000000); /** * @notice Get the table's key field names. @@ -51,14 +50,13 @@ library UltimateDominionConfig { * @return fieldNames An array of strings with the names of value fields. */ function getFieldNames() internal pure returns (string[] memory fieldNames) { - fieldNames = new string[](7); + fieldNames = new string[](6); fieldNames[0] = "locked"; fieldNames[1] = "goldToken"; fieldNames[2] = "characterToken"; fieldNames[3] = "entropy"; fieldNames[4] = "pythProvider"; fieldNames[5] = "items"; - fieldNames[6] = "multicall"; } /** @@ -303,44 +301,6 @@ library UltimateDominionConfig { StoreCore.setStaticField(_tableId, _keyTuple, 5, abi.encodePacked((items)), _fieldLayout); } - /** - * @notice Get multicall. - */ - function getMulticall() internal view returns (address multicall) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Get multicall. - */ - function _getMulticall() internal view returns (address multicall) { - bytes32[] memory _keyTuple = new bytes32[](0); - - bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 6, _fieldLayout); - return (address(bytes20(_blob))); - } - - /** - * @notice Set multicall. - */ - function setMulticall(address multicall) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreSwitch.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((multicall)), _fieldLayout); - } - - /** - * @notice Set multicall. - */ - function _setMulticall(address multicall) internal { - bytes32[] memory _keyTuple = new bytes32[](0); - - StoreCore.setStaticField(_tableId, _keyTuple, 6, abi.encodePacked((multicall)), _fieldLayout); - } - /** * @notice Get the full data. */ @@ -378,10 +338,9 @@ library UltimateDominionConfig { address characterToken, address entropy, address pythProvider, - address items, - address multicall + address items ) internal { - bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items); EncodedLengths _encodedLengths; bytes memory _dynamicData; @@ -400,10 +359,9 @@ library UltimateDominionConfig { address characterToken, address entropy, address pythProvider, - address items, - address multicall + address items ) internal { - bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items); EncodedLengths _encodedLengths; bytes memory _dynamicData; @@ -423,8 +381,7 @@ library UltimateDominionConfig { _table.characterToken, _table.entropy, _table.pythProvider, - _table.items, - _table.multicall + _table.items ); EncodedLengths _encodedLengths; @@ -445,8 +402,7 @@ library UltimateDominionConfig { _table.characterToken, _table.entropy, _table.pythProvider, - _table.items, - _table.multicall + _table.items ); EncodedLengths _encodedLengths; @@ -471,8 +427,7 @@ library UltimateDominionConfig { address characterToken, address entropy, address pythProvider, - address items, - address multicall + address items ) { locked = (_toBool(uint8(Bytes.getBytes1(_blob, 0)))); @@ -486,8 +441,6 @@ library UltimateDominionConfig { pythProvider = (address(Bytes.getBytes20(_blob, 61))); items = (address(Bytes.getBytes20(_blob, 81))); - - multicall = (address(Bytes.getBytes20(_blob, 101))); } /** @@ -507,8 +460,7 @@ library UltimateDominionConfig { _table.characterToken, _table.entropy, _table.pythProvider, - _table.items, - _table.multicall + _table.items ) = decodeStatic(_staticData); } @@ -540,10 +492,9 @@ library UltimateDominionConfig { address characterToken, address entropy, address pythProvider, - address items, - address multicall + address items ) internal pure returns (bytes memory) { - return abi.encodePacked(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + return abi.encodePacked(locked, goldToken, characterToken, entropy, pythProvider, items); } /** @@ -558,10 +509,9 @@ library UltimateDominionConfig { address characterToken, address entropy, address pythProvider, - address items, - address multicall + address items ) internal pure returns (bytes memory, EncodedLengths, bytes memory) { - bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items, multicall); + bytes memory _staticData = encodeStatic(locked, goldToken, characterToken, entropy, pythProvider, items); EncodedLengths _encodedLengths; bytes memory _dynamicData; diff --git a/packages/contracts/src/codegen/world/ICombatSystem.sol b/packages/contracts/src/codegen/world/ICombatSystem.sol index 23c1c406e..1150192af 100644 --- a/packages/contracts/src/codegen/world/ICombatSystem.sol +++ b/packages/contracts/src/codegen/world/ICombatSystem.sol @@ -28,7 +28,7 @@ interface ICombatSystem { function UD__endTurn(bytes32 encounterId, bytes32 playerId, Action[] memory actions) external payable; - function UD__isParticipant(address account, bytes32 encounterId) external view returns (bool _isParticipant); + function UD__isParticipant(bytes32 playerId, bytes32 encounterId) external view returns (bool _isParticipant); function UD__isParticipant( address account, diff --git a/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol b/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol index b922891a0..847c523b5 100644 --- a/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol +++ b/packages/contracts/src/codegen/world/IUltimateDominionConfigSystem.sol @@ -9,17 +9,15 @@ pragma solidity >=0.8.24; * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. */ interface IUltimateDominionConfigSystem { - function UD__getCharacterToken() external view returns (address _characterToken); + function UD__getCharacterToken() external view returns (address _characterToken); - function UD__getGoldToken() external view returns (address _goldToken); + function UD__getGoldToken() external view returns (address _goldToken); - function UD__getEntropy() external view returns (address _entropy); + function UD__getEntropy() external view returns (address _entropy); - function UD__getPythProvider() external view returns (address _provider); + function UD__getPythProvider() external view returns (address _provider); - function UD__getItemsContract() external view returns (address _erc1155); + function UD__getItemsContract() external view returns (address _erc1155); - function UD__getMulticallContract() external view returns (address _multicall); - - function UD__getLootManagerSystem() external view returns (address _lootManager); + function UD__getLootManagerSystem() external view returns (address _lootManager); } diff --git a/packages/contracts/src/systems/CombatSystem.sol b/packages/contracts/src/systems/CombatSystem.sol index 4871a5008..88098b806 100644 --- a/packages/contracts/src/systems/CombatSystem.sol +++ b/packages/contracts/src/systems/CombatSystem.sol @@ -122,14 +122,17 @@ contract CombatSystem is System { CombatEncounterData memory encounterData = CombatEncounter.get(encounterId); require(encounterData.start != 0 && encounterData.end == 0, "COMBAT SYSTEM: INVALID ENCOUNTER"); require(encounterData.currentTurn < encounterData.maxTurns, "COMBAT SYSTEM: EXPIRED ENCOUNTER"); - require(isParticipant(_msgSender(), encounterId), "COMBAT SYSTEM: NON-COMBATANT"); + require( + IWorld(_world()).UD__getOwnerAddress(playerId) == _msgSender() && isParticipant(playerId, encounterId), + "COMBAT SYSTEM: NON-COMBATANT" + ); _queueActions(encounterId, actions); } - function isParticipant(address account, bytes32 encounterId) public view returns (bool _isParticipant) { + function isParticipant(bytes32 playerId, bytes32 encounterId) public view returns (bool _isParticipant) { CombatEncounterData memory encounterData = CombatEncounter.get(encounterId); for (uint256 i; i < encounterData.attackers.length;) { - if (account == IWorld(_world()).UD__getOwnerAddress(encounterData.attackers[i])) { + if (playerId == encounterData.attackers[i]) { _isParticipant = true; break; } @@ -139,7 +142,7 @@ contract CombatSystem is System { } if (!_isParticipant) { for (uint256 i; i < encounterData.defenders.length;) { - if (account == IWorld(_world()).UD__getOwnerAddress(encounterData.defenders[i])) { + if (playerId == encounterData.defenders[i]) { _isParticipant = true; break; } diff --git a/packages/contracts/src/systems/LootManagerSystem.sol b/packages/contracts/src/systems/LootManagerSystem.sol index 12b3620a1..f014c3179 100644 --- a/packages/contracts/src/systems/LootManagerSystem.sol +++ b/packages/contracts/src/systems/LootManagerSystem.sol @@ -34,11 +34,6 @@ import { } from "../utils.sol"; import {ITEMS_NAMESPACE, WORLD_NAMESPACE} from "../../constants.sol"; import {WeaponStats, ArmorStats} from "@interfaces/Structs.sol"; -import {TotalSupply} from "@erc1155/tables/TotalSupply.sol"; -import {Owners} from "@erc1155/tables/Owners.sol"; -import {ERC1155URIStorage} from "@erc1155/tables/ERC1155URIStorage.sol"; -import {ERC1155MetadataURI} from "@erc1155/tables/ERC1155MetadataURI.sol"; -import {ERC1155System} from "@erc1155/ERC1155System.sol"; import { _metadataTableId, _erc1155URIStorageTableId, @@ -63,7 +58,9 @@ contract LootManagerSystem is System { address owner = IWorld(_world()).UD__getOwner(characterId); for (uint256 i; i < starterItems.itemIds.length; i++) { - _items().safeTransferFrom(address(this), owner, starterItems.itemIds[i], starterItems.amounts[i], ""); + IERC1155System(UltimateDominionConfig.getItems()).safeTransferFrom( + address(this), owner, starterItems.itemIds[i], starterItems.amounts[i], "" + ); } } @@ -75,7 +72,7 @@ contract LootManagerSystem is System { function dropItem(uint256 itemId, uint256 amount, bytes32 characterId) public { AccessControlLib.requireAccess(_lootManagerSystemId(WORLD_NAMESPACE), _msgSender()); address to = IWorld(_world()).UD__getOwner(characterId); - _items().transferFrom(address(this), to, itemId, amount); + IERC1155System(UltimateDominionConfig.getItems()).transferFrom(address(this), to, itemId, amount); } function dropItems(uint256[] memory itemIds, uint256[] memory amounts, bytes32[] memory characterIds) public { @@ -83,8 +80,4 @@ contract LootManagerSystem is System { dropItem(itemIds[i], amounts[i], characterIds[i]); } } - - function _items() internal view returns (IERC1155System _items) { - _items = IERC1155System(UltimateDominionConfig.getItems()); - } } diff --git a/packages/contracts/src/systems/UltimateDominionConfigSystem.sol b/packages/contracts/src/systems/UltimateDominionConfigSystem.sol index 376ac769a..0c5d2952c 100644 --- a/packages/contracts/src/systems/UltimateDominionConfigSystem.sol +++ b/packages/contracts/src/systems/UltimateDominionConfigSystem.sol @@ -1,41 +1,34 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.8.24; - import {System} from "@latticexyz/world/src/System.sol"; import {Systems} from "@latticexyz/world/src/codegen/tables/Systems.sol"; import {UltimateDominionConfig} from "../codegen/index.sol"; import {_lootManagerSystemId} from "../utils.sol"; import {WORLD_NAMESPACE} from "../../constants.sol"; - contract UltimateDominionConfigSystem is System { - function getCharacterToken() public view returns (address _characterToken) { - _characterToken = UltimateDominionConfig.getCharacterToken(); - } + function getCharacterToken() public view returns (address _characterToken) { + _characterToken = UltimateDominionConfig.getCharacterToken(); + } - function getGoldToken() public view returns (address _goldToken) { - _goldToken = UltimateDominionConfig.getGoldToken(); - } + function getGoldToken() public view returns (address _goldToken) { + _goldToken = UltimateDominionConfig.getGoldToken(); + } - function getEntropy() public view returns (address _entropy) { - _entropy = UltimateDominionConfig.getEntropy(); - } + function getEntropy() public view returns (address _entropy) { + _entropy = UltimateDominionConfig.getEntropy(); + } - function getPythProvider() public view returns (address _provider) { - _provider = UltimateDominionConfig.getPythProvider(); - } + function getPythProvider() public view returns (address _provider) { + _provider = UltimateDominionConfig.getPythProvider(); + } - function getItemsContract() public view returns (address _erc1155) { + function getItemsContract() public view returns (address _erc1155) { _erc1155 = UltimateDominionConfig.getItems(); - } + } - function getMulticallContract() public view returns (address _multicall) { - _multicall = UltimateDominionConfig.getMulticall(); - } - - function getLootManagerSystem() public view returns (address _lootManager) { + function getLootManagerSystem() public view returns (address _lootManager) { _lootManager = Systems.getSystem(_lootManagerSystemId(WORLD_NAMESPACE)); - } - + } } diff --git a/packages/contracts/worlds.json b/packages/contracts/worlds.json index 23c13aadf..913bdbd2a 100644 --- a/packages/contracts/worlds.json +++ b/packages/contracts/worlds.json @@ -1,9 +1,9 @@ { "31337": { - "address": "0xa74b62c241f67bb108d8cad91ab58da0ea6a28f5" + "address": "0x8a5a247b8f295ee4b14557c2939090e39f4bd866" }, "84532": { "address": "0xa0c48020347122d9a03c312aaf84a196c962b624", "blockNumber": 12655705 } -} +} \ No newline at end of file From 8f42a019617c5facf705bfb6264c9c93627a2d39 Mon Sep 17 00:00:00 2001 From: ECWireless Date: Tue, 16 Jul 2024 17:52:22 -0600 Subject: [PATCH 8/8] Missing out files --- packages/contracts/out/CharacterSystem.sol/CharacterSystem.json | 2 +- packages/contracts/out/MapSystem.sol/MapSystem.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json index 01c9b41a5..b9f945ee8 100644 --- a/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json +++ b/packages/contracts/out/CharacterSystem.sol/CharacterSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061497d806100206000396000f3fe6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e65060001141414141400000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea26469706673582212205c1861d323ad8a0004b311ef7f75024cde0dfa48823ac2e8e54f579ec3be1e0364736f6c63430008180033","sourceMap":"1812:6250:211:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e65060001141414141400000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea26469706673582212205c1861d323ad8a0004b311ef7f75024cde0dfa48823ac2e8e54f579ec3be1e0364736f6c63430008180033","sourceMap":"1812:6250:211:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:144;;;;;;;;;;-1:-1:-1;2973:144:211;;;;;:::i;:::-;3106:2;3082:26;;2973:144;;;;-1:-1:-1;;;;;363:55:228;;;345:74;;333:2;318:18;2973:144:211;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:228;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:228;7936:124:211;;;;;;;;;;-1:-1:-1;7936:124:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;4111:837:211:-;;;;;;;;;;-1:-1:-1;4111:837:211;;;;;:::i;:::-;;:::i;:::-;;;4284:25:228;;;4272:2;4257:18;4111:837:211;4138:177:228;6106:492:211;;;;;;;;;;-1:-1:-1;6106:492:211;;;;;:::i;:::-;;:::i;1989:129::-;;;;;;;;;;-1:-1:-1;1989:129:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1853:130:211;;;;;;;;;;-1:-1:-1;1853:130:211;;;;;:::i;:::-;;:::i;3123:413::-;;;;;;;;;;-1:-1:-1;3123:413:211;;;;;:::i;:::-;;:::i;4954:545::-;;;;;;:::i;:::-;;:::i;:::-;;2460:266;;;;;;;;;;-1:-1:-1;2460:266:211;;;;;:::i;:::-;;:::i;3542:212::-;;;;;;;;;;-1:-1:-1;3542:212:211;;;;;:::i;:::-;;:::i;6604:219::-;;;;;;;;;;-1:-1:-1;6604:219:211;;;;;:::i;:::-;;:::i;5505:595::-;;;;;;;;;;-1:-1:-1;5505:595:211;;;;;:::i;:::-;;:::i;7669:125::-;;;;;;;;;;-1:-1:-1;7669:125:211;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7800:130:211:-;;;;;;;;;;-1:-1:-1;7800:130:211;;;;;:::i;:::-;;:::i;2732:143::-;;;;;;;;;;-1:-1:-1;2732:143:211;;;;;:::i;:::-;2830:37;;;2732:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7936:124:211:-;7996:16;;:::i;:::-;8031:22;8041:11;8031:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;4111:837:211:-;4221:19;4256:24;4283:28;:26;:28::i;:::-;4256:55;-1:-1:-1;4348:16:211;4329:35;;4321:83;;;;-1:-1:-1;;;4321:83:211;;6255:2:228;4321:83:211;;;6237:21:228;6294:2;6274:18;;;6267:30;6333:34;6313:18;;;6306:62;6404:5;6384:18;;;6377:33;6427:19;;4321:83:211;;;;;;;;;4421:8;:6;:8::i;:::-;-1:-1:-1;;;;;4414:21:211;;4449:37;4465:20;4449:15;:37::i;:::-;4488:65;;-1:-1:-1;;;;;6649:55:228;;4488:65:211;;;6631:74:228;6721:18;;;6714:34;;;6604:18;;4488:65:211;;;-1:-1:-1;;4488:65:211;;;;;;;;;;;;;;;;;;;;4414:149;;4488:65;4414:149;;;;;;;;;4488:65;4414:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4414:149:211;;;;;;;;;;;;:::i;:::-;;4587:35;4605:16;4587:17;:35::i;:::-;4573:49;;4632:41;4652:11;4665:7;4632:19;:41::i;:::-;4683:52;4705:11;4718:16;4683:21;:52::i;:::-;4754:25;4774:4;4754:19;:25::i;:::-;4753:26;4745:58;;;;-1:-1:-1;;;4745:58:211;;8662:2:228;4745:58:211;;;8644:21:228;8701:2;8681:18;;;8674:30;8740:21;8720:18;;;8713:49;8779:18;;4745:58:211;8460:343:228;4745:58:211;4813:31;4833:4;4839;4813:19;:31::i;:::-;4854:37;4873:11;4886:4;4854:18;:37::i;:::-;4901:40;4914:16;4932:8;4901:12;:40::i;:::-;4246:702;4111:837;;;;;:::o;6106:492::-;6181:20;6231:14;6242:2;6231:10;:14::i;:::-;6217:10;:28;6213:379;;-1:-1:-1;6276:2:211;6106:492;;;:::o;6213:379::-;6314:9;6309:273;6329:2;6325:1;:6;6309:273;;;6373:10;6356:13;6367:1;6356:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;6407:10:211;6387:17;6398:5;:1;6402;6398:5;:::i;:::-;6387:10;:17::i;:::-;:30;6356:61;6352:155;;;6456:5;:1;6460;6456:5;:::i;:::-;6441:20;;6483:5;;6352:155;6546:3;;;;:::i;:::-;;;;6309:273;;;;6106:492;;;:::o;1989:129::-;2049:14;2084:27;2099:11;2084:14;:27::i;1853:130::-;1912:13;1945:31;1964:11;1945:18;:31::i;3123:413::-;3193:4;3209:20;3232:28;3248:11;3106:2;3082:26;;2973:144;3232:28;3209:51;-1:-1:-1;2830:37:211;;;3270:15;3359:17;:15;:17::i;:::-;-1:-1:-1;;;;;3359:25:211;;3385:7;3359:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3359:34:211;;;;;;;;;;;;;;;;;;;-1:-1:-1;3359:34:211;;;;;;;;-1:-1:-1;;3359:34:211;;;;;;;;;;;;:::i;:::-;;;3355:135;;;3436:17;:15;:17::i;:::-;-1:-1:-1;;;;;3436:25:211;;3462:7;3436:34;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;3436:34:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3426:44;;3394:87;3355:135;3517:12;-1:-1:-1;;;;;3506:23:211;:7;-1:-1:-1;;;;;3506:23:211;;3499:30;;;;;3123:413;;;:::o;4954:545::-;5069:33;5090:11;5069:20;:33::i;:::-;5068:34;5060:90;;;;-1:-1:-1;;;5060:90:211;;9785:2:228;5060:90:211;;;9767:21:228;9824:2;9804:18;;;9797:30;9863:34;9843:18;;;9836:62;9934:13;9914:18;;;9907:41;9965:19;;5060:90:211;9583:407:228;5060:90:211;5168:21;5177:11;5168:8;:21::i;:::-;5160:53;;;;-1:-1:-1;;;5160:53:211;;10197:2:228;5160:53:211;;;10179:21:228;10236:2;10216:18;;;10209:30;10275:21;10255:18;;;10248:49;10314:18;;5160:53:211;9995:343:228;5160:53:211;5223:26;5291:34;5306:11;5319:5;5291:14;:34::i;:::-;5382:110;5435:16;5453:11;5477;5466:23;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5466:23:211;;;;-1:-1:-1;;5466:23:211;;;;;;;;;;5400:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5400:91:211;;;;;;;;;;;;;;;;;;;;5382:17;:110::i;:::-;;5050:449;4954:545;;;:::o;2460:266::-;2534:19;2565:20;2588:17;:15;:17::i;:::-;-1:-1:-1;;;;;2588:25:211;;2614:16;2588:43;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;2588:43:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2697:2;2663:36;-1:-1:-1;;2663:36:211;:55;;;;;;-1:-1:-1;;2460:266:211:o;3542:212::-;3621:4;3644:31;3663:11;3644:18;:31::i;:::-;:103;;;;;3742:5;-1:-1:-1;;;;;3679:68:211;:17;:15;:17::i;:::-;:59;;;;;2830:37;;;3679:59;;;4284:25:228;-1:-1:-1;;;;;3679:25:211;;;;;;;4257:18:228;;3679:59:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3679:68:211;;3644:103;3637:110;3542:212;-1:-1:-1;;;3542:212:211:o;6604:219::-;6698:21;6707:11;6698:8;:21::i;:::-;6690:60;;;;-1:-1:-1;;;6690:60:211;;10974:2:228;6690:60:211;;;10956:21:228;11013:2;10993:18;;;10986:30;11052:28;11032:18;;;11025:56;11098:18;;6690:60:211;10772:350:228;6690:60:211;6760:56;2830:37;;;6807:8;6760:12;:56::i;:::-;6604:219;;:::o;5505:595::-;5570:21;5579:11;5570:8;:21::i;:::-;5562:52;;;;-1:-1:-1;;;5562:52:211;;11329:2:228;5562:52:211;;;11311:21:228;11368:2;11348:18;;;11341:30;11407:20;11387:18;;;11380:48;11445:18;;5562:52:211;11127:342:228;5562:52:211;5633:33;5654:11;5633:20;:33::i;:::-;5632:34;5624:72;;;;-1:-1:-1;;;5624:72:211;;11676:2:228;5624:72:211;;;11658:21:228;11715:2;11695:18;;;11688:30;11754:27;11734:18;;;11727:55;11799:18;;5624:72:211;11474:349:228;5624:72:211;5706:26;5735:22;5745:11;5735:9;:22::i;:::-;5785:1;5767:15;;;:19;5825:23;;;;5796:19;;;:53;5706:51;-1:-1:-1;5859:33:211;5869:11;5706:51;5859:9;:33::i;:::-;5909:8;:6;:8::i;:::-;5902:51;;;;;;;;12028:25:228;;;5945:7:211;12069:18:228;;;12062:34;-1:-1:-1;;;;;5902:29:211;;;;;;;12001:18:228;;5902:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:8;:6;:8::i;:::-;-1:-1:-1;;;;;5993:38:211;;6032:11;5993:51;;;;;;;;;;;;;4284:25:228;;4272:2;4257:18;;4138:177;5993:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6054:39;6075:11;6088:4;6054:20;:39::i;7669:125::-;7729:7;7755:32;7775:11;7755:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7800:130:211:-;7865:7;7891:32;7911:11;7891:19;:32::i;13270:402:194:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:194;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:194:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;7003:347:211:-;7059:7;7078:25;7106:42;:40;:42::i;:::-;7078:70;;7158:24;7185:50;7213:17;7233:1;7185:19;:50::i;:::-;:54;;7238:1;7185:54;:::i;:::-;7158:81;;7249:61;7269:17;7288:1;7292:16;7249:19;:61::i;1157:186:219:-;1215:10;1240:100;1275:15;1303:9;1320:18;1240:25;:100::i;4730:249:178:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:178;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;12445:2:228;12441:15;;;;-1:-1:-1;;12437:88:228;12425:101;;12551:2;12542:12;;12296:264;4934:25:178;;;;-1:-1:-1;;4934:25:178;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:178;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12694:19:228;;12738:2;12729:12;;12565:182;2594:287:189;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:189;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:189:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:189;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12903:14:228;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4085:25:189;;;;-1:-1:-1;;4085:25:189;;;;;;;;;1198:66;4034:26;:91::i;5941:246:178:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:178;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12694:19:228;;12738:2;12729:12;;12565:182;6829:168:211;6911:79;6932:38;6949:20;6932:16;:38::i;:::-;6972:7;6981:8;6911:20;:79::i;3297:296:183:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:183;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:183;:64::i;5624:288:194:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:194;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:194;;;;5878:29;;;;;;;;:::i;5306:279:178:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:178;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2279:175:211:-;2329:30;2404:42;:40;:42::i;6512:295:178:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:178;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;7496:167:211:-;7558:4;7597:17;:15;:17::i;:::-;:59;;;;;2830:37;;;7597:59;;;4284:25:228;-1:-1:-1;;;;;7597:25:211;;;;;;;4257:18:228;;7597:59:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7581:75:211;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7581:75:211;;;7496:167;-1:-1:-1;;7496:167:211:o;6279:248:194:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:194;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;13290:3:228;13286:16;;;;13304:66;13282:89;13270:102;;13397:1;13388:11;;13145:260;6477:30:194;;;;-1:-1:-1;;6477:30:194;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13966:98:228;13939:18;;3713:52:107;13822:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;15666:552:194:-;15737:24;15764:207;15784:6;:15;;;15807:6;:14;;;15829:6;:12;;;15849:6;:19;;;15876:6;:20;;;15904:6;:16;;;15928:6;:17;;;15953:6;:12;;;15764;:207::i;:::-;16075:16;;;16089:1;16075:16;;;;;;;;;15737:234;;-1:-1:-1;15978:30:194;;16014:25;;15978:30;;16075:16;;;;;;;;;;;;-1:-1:-1;16075:16:194;16046:45;;16112:8;16097:9;16107:1;16097:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;16127:86;1310:66;16159:9;16170:11;16183:15;16200:12;16127:21;:86::i;:::-;15731:487;;;;15666:552;;:::o;7183:249:178:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:178;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12903:14:228;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4071:290:178;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:178;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:178:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:194:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:194;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:194:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:194;;;;-1:-1:-1;17879:370:194;;;-1:-1:-1;;;;;17879:370:194:o;5084:257:195:-;5195:16;;;5136:22;5195:16;;;;;;;;;5218:13;5234:64;1248:66;5166:45;5282:1;1377:66;5234:26;:64::i;:::-;5312:23;;;5084:257;-1:-1:-1;;;5084:257:195:o;2640:388:180:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:180;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:180;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:180;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:180:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:180;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:180;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12694:19:228;;12738:2;12729:12;;12565:182;4646:27:180;;;;-1:-1:-1;;4646:27:180;;;;;;;;;-1:-1:-1;;;4595:26:180;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;18916:362:194:-;19145:12;19189:8;19199:7;19208:5;19215:12;19229:13;19244:9;19255:10;19267:5;19172:101;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19165:108;;18916:362;;;;;;;;;;:::o;6458:480:46:-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;6692:242::-;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;1836:227::-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:194:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:194;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:194;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:194;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:194;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:194;-1:-1:-1;;16961:760:194:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;12066:286:45;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12694:19:228;;12738:2;12729:12;;12565:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4015:652:45;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12694:19:228;;12738:2;12729:12;;12565:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;26250:12:228;26289:15;;;45340:92:45;;;26271:34:228;26341:15;;;26321:18;;;26314:43;26393:15;;26373:18;;;26366:43;26213:18;;45340:92:45;26044:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;26593:25:228;;;26666:12;26654:25;;26634:18;;;26627:53;26566:18;;45581:74:45;26420:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;28531:79:228;;2092:30:124;;;28519:92:228;2092:30:124;;28627:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;51249:282:45:-;51494:30;;;;;;29374:19:228;;;29409:12;;;29402:28;;;51337:7:45;;29446:12:228;;51494:30:45;29185:279:228;1489:2340:44;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:228;;;4257:18;;7664:67:24;4138:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:189;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:189;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:228:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:228;;14:180;-1:-1:-1;14:180:228:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:228;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:228;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1208:200;1148:266;:::o;1419:777::-;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:228;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:228;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:228;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:228:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:228;3037:15;-1:-1:-1;;3033:88:228;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:228:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:228;3925:18;;3912:32;;-1:-1:-1;3995:2:228;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4687:235::-;4833:2;4818:18;;4845:37;4875:6;4845:37;:::i;:::-;4891:25;;;4687:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:315::-;5406:6;5414;5467:2;5455:9;5446:7;5442:23;5438:32;5435:52;;;5483:1;5480;5473:12;5435:52;5519:9;5506:23;5496:33;;5579:2;5568:9;5564:18;5551:32;5592:31;5617:5;5592:31;:::i;:::-;5642:5;5632:15;;;5338:315;;;;;:::o;5658:390::-;5736:6;5744;5797:2;5785:9;5776:7;5772:23;5768:32;5765:52;;;5813:1;5810;5803:12;5765:52;5849:9;5836:23;5826:33;;5910:2;5899:9;5895:18;5882:32;5937:18;5929:6;5926:30;5923:50;;;5969:1;5966;5959:12;5923:50;5992;6034:7;6025:6;6014:9;6010:22;5992:50;:::i;:::-;5982:60;;;5658:390;;;;;:::o;6759:250::-;6844:1;6854:113;6868:6;6865:1;6862:13;6854:113;;;6944:11;;;6938:18;6925:11;;;6918:39;6890:2;6883:10;6854:113;;;-1:-1:-1;;7001:1:228;6983:16;;6976:27;6759:250::o;7014:329::-;7055:3;7093:5;7087:12;7120:6;7115:3;7108:19;7136:76;7205:6;7198:4;7193:3;7189:14;7182:4;7175:5;7171:16;7136:76;:::i;:::-;7257:2;7245:15;-1:-1:-1;;7241:88:228;7232:98;;;;7332:4;7228:109;;7014:329;-1:-1:-1;;7014:329:228:o;7348:320::-;7555:6;7544:9;7537:25;7598:2;7593;7582:9;7578:18;7571:30;7518:4;7618:44;7658:2;7647:9;7643:18;7635:6;7618:44;:::i;7673:442::-;7726:5;7779:3;7772:4;7764:6;7760:17;7756:27;7746:55;;7797:1;7794;7787:12;7746:55;7826:6;7820:13;7857:49;7873:32;7902:2;7873:32;:::i;7857:49::-;7931:2;7922:7;7915:19;7977:3;7970:4;7965:2;7957:6;7953:15;7949:26;7946:35;7943:55;;;7994:1;7991;7984:12;7943:55;8007:77;8081:2;8074:4;8065:7;8061:18;8054:4;8046:6;8042:17;8007:77;:::i;8120:335::-;8199:6;8252:2;8240:9;8231:7;8227:23;8223:32;8220:52;;;8268:1;8265;8258:12;8220:52;8301:9;8295:16;8334:18;8326:6;8323:30;8320:50;;;8366:1;8363;8356:12;8320:50;8389:60;8441:7;8432:6;8421:9;8417:22;8389:60;:::i;8808:184::-;-1:-1:-1;;;8857:1:228;8850:88;8957:4;8954:1;8947:15;8981:4;8978:1;8971:15;8997:125;9062:9;;;9083:10;;;9080:36;;;9096:18;;:::i;9127:195::-;9166:3;-1:-1:-1;;9190:5:228;9187:77;9184:103;;9267:18;;:::i;:::-;-1:-1:-1;9314:1:228;9303:13;;9127:195::o;9327:251::-;9397:6;9450:2;9438:9;9429:7;9425:23;9421:32;9418:52;;;9466:1;9463;9456:12;9418:52;9498:9;9492:16;9517:31;9542:5;9517:31;:::i;10343:424::-;10565:6;10554:9;10547:25;10581:37;10611:6;10581:37;:::i;:::-;10654:6;10649:2;10638:9;10634:18;10627:34;10697:2;10692;10681:9;10677:18;10670:30;10528:4;10717:44;10757:2;10746:9;10742:18;10734:6;10717:44;:::i;12107:184::-;-1:-1:-1;;;12156:1:228;12149:88;12256:4;12253:1;12246:15;12280:4;12277:1;12270:15;13410:407;13493:5;13533;13527:12;13575:4;13568:5;13564:16;13558:23;13600:66;13692:2;13688;13684:11;13675:20;;13718:1;13710:6;13707:13;13704:107;;;13798:2;13792;13782:6;13779:1;13775:14;13772:1;13768:22;13764:31;13760:2;13756:40;13752:49;13743:58;;13704:107;;;;13410:407;;;:::o;14075:439::-;14128:3;14166:5;14160:12;14193:6;14188:3;14181:19;14219:4;14248;14243:3;14239:14;14232:21;;14287:4;14280:5;14276:16;14310:1;14320:169;14334:6;14331:1;14328:13;14320:169;;;14395:13;;14383:26;;14429:12;;;;14464:15;;;;14356:1;14349:9;14320:169;;;-1:-1:-1;14505:3:228;;14075:439;-1:-1:-1;;;;;14075:439:228:o;14519:468::-;14819:6;14808:9;14801:25;14862:2;14857;14846:9;14842:18;14835:30;14782:4;14882:56;14934:2;14923:9;14919:18;14911:6;14882:56;:::i;:::-;14874:64;;14974:6;14969:2;14958:9;14954:18;14947:34;14519:468;;;;;;:::o;14992:655::-;15134:6;15142;15150;15203:2;15191:9;15182:7;15178:23;15174:32;15171:52;;;15219:1;15216;15209:12;15171:52;15252:9;15246:16;15281:18;15322:2;15314:6;15311:14;15308:34;;;15338:1;15335;15328:12;15308:34;15361:60;15413:7;15404:6;15393:9;15389:22;15361:60;:::i;:::-;15351:70;;15461:2;15450:9;15446:18;15440:25;15430:35;;15511:2;15500:9;15496:18;15490:25;15474:41;;15540:2;15530:8;15527:16;15524:36;;;15556:1;15553;15546:12;15524:36;;15579:62;15633:7;15622:8;15611:9;15607:24;15579:62;:::i;15652:709::-;16022:6;16011:9;16004:25;16065:3;16060:2;16049:9;16045:18;16038:31;15985:4;16092:57;16144:3;16133:9;16129:19;16121:6;16092:57;:::i;:::-;16197:4;16189:6;16185:17;16180:2;16169:9;16165:18;16158:45;16251:9;16243:6;16239:22;16234:2;16223:9;16219:18;16212:50;16279:32;16304:6;16296;16279:32;:::i;:::-;16271:40;;;16348:6;16342:3;16331:9;16327:19;16320:35;15652:709;;;;;;;;:::o;16366:548::-;16690:6;16679:9;16672:25;16733:3;16728:2;16717:9;16713:18;16706:31;16653:4;16754:57;16806:3;16795:9;16791:19;16783:6;16754:57;:::i;:::-;16859:4;16847:17;;;;16842:2;16827:18;;16820:45;-1:-1:-1;16896:2:228;16881:18;16874:34;16746:65;16366:548;-1:-1:-1;;16366:548:228:o;16919:184::-;16989:6;17042:2;17030:9;17021:7;17017:23;17013:32;17010:52;;;17058:1;17055;17048:12;17010:52;-1:-1:-1;17081:16:228;;16919:184;-1:-1:-1;16919:184:228:o;17108:707::-;17455:6;17450:3;17443:19;17492:6;17487:2;17482:3;17478:12;17471:28;17508:37;17538:6;17508:37;:::i;:::-;17579:3;17575:16;;;;17570:2;17561:12;;17554:38;17617:2;17608:12;;17601:28;;;;17654:2;17645:12;;17638:28;;;;17691:3;17682:13;;17675:29;17729:3;17720:13;;17713:29;17767:3;17758:13;;17751:29;17805:3;17796:13;;17108:707;-1:-1:-1;;17108:707:228:o;17820:794::-;18215:6;18204:9;18197:25;18258:3;18253:2;18242:9;18238:18;18231:31;18178:4;18285:57;18337:3;18326:9;18322:19;18314:6;18285:57;:::i;:::-;18390:9;18382:6;18378:22;18373:2;18362:9;18358:18;18351:50;18424:32;18449:6;18441;18424:32;:::i;:::-;18410:46;;18492:6;18487:2;18476:9;18472:18;18465:34;18548:9;18540:6;18536:22;18530:3;18519:9;18515:19;18508:51;18576:32;18601:6;18593;18576:32;:::i;:::-;18568:40;17820:794;-1:-1:-1;;;;;;;;17820:794:228:o;18619:175::-;18656:3;18700:4;18693:5;18689:16;18729:4;18720:7;18717:17;18714:43;;18737:18;;:::i;:::-;18786:1;18773:15;;18619:175;-1:-1:-1;;18619:175:228:o;18799:604::-;19108:6;19097:9;19090:25;19151:3;19146:2;19135:9;19131:18;19124:31;19071:4;19178:57;19230:3;19219:9;19215:19;19207:6;19178:57;:::i;:::-;19283:4;19275:6;19271:17;19266:2;19255:9;19251:18;19244:45;19337:9;19329:6;19325:22;19320:2;19309:9;19305:18;19298:50;19365:32;19390:6;19382;19365:32;:::i;:::-;19357:40;18799:604;-1:-1:-1;;;;;;;18799:604:228:o;19735:128::-;19802:9;;;19823:11;;;19820:37;;;19837:18;;:::i;19868:168::-;19941:9;;;19972;;19989:15;;;19983:22;;19969:37;19959:71;;20010:18;;:::i;20041:640::-;20292:6;20287:3;20280:19;20262:3;20318:2;20351;20346:3;20342:12;20383:6;20377:13;20448:2;20440:6;20436:15;20469:1;20479:175;20493:6;20490:1;20487:13;20479:175;;;20556:13;;20542:28;;20592:14;;;;20629:15;;;;20515:1;20508:9;20479:175;;;-1:-1:-1;20670:5:228;;20041:640;-1:-1:-1;;;;;;;20041:640:228:o;20686:184::-;-1:-1:-1;;;20735:1:228;20728:88;20835:4;20832:1;20825:15;20859:4;20856:1;20849:15;20875:511;21126:2;21115:9;21108:21;21089:4;21152:56;21204:2;21193:9;21189:18;21181:6;21152:56;:::i;:::-;21256:14;21248:6;21244:27;21239:2;21228:9;21224:18;21217:55;21320:9;21312:6;21308:22;21303:2;21292:9;21288:18;21281:50;21348:32;21373:6;21365;21348:32;:::i;21391:616::-;21702:6;21691:9;21684:25;21745:3;21740:2;21729:9;21725:18;21718:31;21665:4;21772:57;21824:3;21813:9;21809:19;21801:6;21772:57;:::i;:::-;21877:14;21869:6;21865:27;21860:2;21849:9;21845:18;21838:55;21941:9;21933:6;21929:22;21924:2;21913:9;21909:18;21902:50;21969:32;21994:6;21986;21969:32;:::i;22012:925::-;22461:66;22453:6;22449:79;22444:3;22437:92;22419:3;22548;22580:2;22576:1;22571:3;22567:11;22560:23;22612:6;22606:13;22628:74;22695:6;22691:1;22686:3;22682:11;22675:4;22667:6;22663:17;22628:74;:::i;:::-;22730:6;22725:3;22721:16;22711:26;;22765:2;22761:1;22757:2;22753:10;22746:22;22799:6;22793:13;22777:29;;22815:75;22881:8;22877:1;22873:2;22869:10;22862:4;22854:6;22850:17;22815:75;:::i;:::-;22910:17;22929:1;22906:25;;22012:925;-1:-1:-1;;;;;22012:925:228:o;22942:339::-;23119:2;23108:9;23101:21;23082:4;23139:44;23179:2;23168:9;23164:18;23156:6;23139:44;:::i;:::-;23131:52;;-1:-1:-1;;;;;23223:6:228;23219:55;23214:2;23203:9;23199:18;23192:83;22942:339;;;;;:::o;23286:287::-;23415:3;23453:6;23447:13;23469:66;23528:6;23523:3;23516:4;23508:6;23504:17;23469:66;:::i;:::-;23551:16;;;;;23286:287;-1:-1:-1;;23286:287:228:o;23578:690::-;23913:3;23902:9;23895:22;23876:4;23940:57;23992:3;23981:9;23977:19;23969:6;23940:57;:::i;:::-;24045:9;24037:6;24033:22;24028:2;24017:9;24013:18;24006:50;24079:32;24104:6;24096;24079:32;:::i;:::-;24065:46;;24147:6;24142:2;24131:9;24127:18;24120:34;24202:9;24194:6;24190:22;24185:2;24174:9;24170:18;24163:50;24230:32;24255:6;24247;24230:32;:::i;24273:899::-;24729:6;24718:9;24711:25;24772:3;24767:2;24756:9;24752:18;24745:31;24692:4;24799:57;24851:3;24840:9;24836:19;24828:6;24799:57;:::i;:::-;24904:9;24896:6;24892:22;24887:2;24876:9;24872:18;24865:50;24938:32;24963:6;24955;24938:32;:::i;:::-;24924:46;;25006:6;25001:2;24990:9;24986:18;24979:34;25062:9;25054:6;25050:22;25044:3;25033:9;25029:19;25022:51;25090:32;25115:6;25107;25090:32;:::i;:::-;25082:40;;;25159:6;25153:3;25142:9;25138:19;25131:35;24273:899;;;;;;;;;:::o;25396:464::-;25643:66;25635:6;25631:79;25620:9;25613:98;25747:6;25742:2;25731:9;25727:18;25720:34;25790:2;25785;25774:9;25770:18;25763:30;25594:4;25810:44;25850:2;25839:9;25835:18;25827:6;25810:44;:::i;25865:174::-;25932:12;25964:10;;;25976;;;25960:27;;25999:11;;;25996:37;;;26013:18;;:::i;:::-;25996:37;25865:174;;;;:::o;26691:901::-;27116:6;27105:9;27098:25;27159:3;27154:2;27143:9;27139:18;27132:31;27079:4;27186:57;27238:3;27227:9;27223:19;27215:6;27186:57;:::i;:::-;27291:4;27279:17;;27274:2;27259:18;;27252:45;27316:12;27364:15;;;27359:2;27344:18;;27337:43;27417:15;;27411:3;27396:19;;27389:44;27464:3;27449:19;;27442:35;;;27514:22;;;27508:3;27493:19;;27486:51;27554:32;27518:6;27571;27554:32;:::i;:::-;27546:40;26691:901;-1:-1:-1;;;;;;;;;;26691:901:228:o;27597:788::-;27962:3;27951:9;27944:22;27925:4;27989:57;28041:3;28030:9;28026:19;28018:6;27989:57;:::i;:::-;28094:4;28086:6;28082:17;28077:2;28066:9;28062:18;28055:45;28148:14;28140:6;28136:27;28131:2;28120:9;28116:18;28109:55;28212:12;28204:6;28200:25;28195:2;28184:9;28180:18;28173:53;28263:6;28257:3;28246:9;28242:19;28235:35;28319:9;28311:6;28307:22;28301:3;28290:9;28286:19;28279:51;28347:32;28372:6;28364;28347:32;:::i;:::-;28339:40;27597:788;-1:-1:-1;;;;;;;;;27597:788:228:o;28650:530::-;28835:3;28873:6;28867:13;28889:66;28948:6;28943:3;28936:4;28928:6;28924:17;28889:66;:::i;:::-;29024:2;29020:15;;;;-1:-1:-1;;29016:88:228;28977:16;;;;29002:103;;;29132:2;29121:14;;29114:30;;;;29171:2;29160:14;;28650:530;-1:-1:-1;;28650:530:228:o;29469:359::-;29672:2;29661:9;29654:21;29635:4;29692:44;29732:2;29721:9;29717:18;29709:6;29692:44;:::i;:::-;29767:2;29752:18;;29745:34;;;;-1:-1:-1;29810:2:228;29795:18;29788:34;29684:52;29469:359;-1:-1:-1;29469:359:228:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentAvailableLevel(uint256)":"1ecb393f","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","isValidOwner(bytes32,address)":"9b63ec05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c\",\"dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256\",\"dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087\",\"dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9\",\"dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465\",\"dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN\"]},\"src/utils.sol\":{\"keccak256\":\"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57\",\"dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"isValidOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059","urls":["bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c","dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26","urls":["bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256","dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9","urls":["bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087","dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828","urls":["bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9","dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488","urls":["bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465","dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc","urls":["bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57","dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q"],"license":"MIT"}},"version":1},"id":211} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"enterGame","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCharacterTokenId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getClass","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"getCurrentAvailableLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExperience","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwnerAddress","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPlayerEntityId","inputs":[{"name":"characterTokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStats","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"baseHitPoints","type":"uint256","internalType":"uint256"},{"name":"currentHp","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isValidCharacterId","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidOwner","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"updateTokenUri","inputs":[{"name":"characterId","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061497d806100206000396000f3fe6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e65060001141414141400000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea26469706673582212205c1861d323ad8a0004b311ef7f75024cde0dfa48823ac2e8e54f579ec3be1e0364736f6c63430008180033","sourceMap":"1812:6250:211:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101435760003560e01c8063623daa05116100c0578063c74dedc811610074578063e1af802c11610059578063e1af802c14610380578063ebee03bb14610395578063f8c67561146103b557600080fd5b8063c74dedc814610340578063deb931a21461036057600080fd5b80638338f0e0116100a55780638338f0e0146102e05780639b63ec0514610300578063b27cbcbb1461032057600080fd5b8063623daa05146102ab578063679ee16d146102cb57600080fd5b8063143f30211161011757806323801570116100fc578063238015701461024657806345ec93541461027357806354b8d5e31461028b57600080fd5b8063143f3021146101f85780631ecb393f1461022657600080fd5b8062d43ec61461014857806301ffc9a7146101865780630bb700dc146101b6578063119df25f146101e3575b600080fd5b34801561015457600080fd5b50610169610163366004613e65565b60601c90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101a66101a1366004613e7e565b6103e1565b604051901515815260200161017d565b3480156101c257600080fd5b506101d66101d1366004613e65565b61047a565b60405161017d9190613ef7565b3480156101ef57600080fd5b5061016961048b565b34801561020457600080fd5b50610218610213366004614032565b61049a565b60405190815260200161017d565b34801561023257600080fd5b50610218610241366004613e65565b6106fc565b34801561025257600080fd5b50610266610261366004613e65565b61077a565b60405161017d919061408b565b34801561027f57600080fd5b5036601f190135610218565b34801561029757600080fd5b506102186102a6366004613e65565b610785565b3480156102b757600080fd5b506101a66102c6366004613e65565b610790565b6102de6102d936600461409e565b6108bc565b005b3480156102ec57600080fd5b506102186102fb366004613e65565b610a34565b34801561030c57600080fd5b506101a661031b3660046140db565b610ac9565b34801561032c57600080fd5b506102de61033b36600461410b565b610b90565b34801561034c57600080fd5b506102de61035b366004613e65565b610c01565b34801561036c57600080fd5b5061016961037b366004613e65565b610dd1565b34801561038c57600080fd5b50610169610ddc565b3480156103a157600080fd5b506102186103b0366004613e65565b610de6565b3480156103c157600080fd5b506102186103d0366004613e65565b6bffffffffffffffffffffffff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061047457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610482613e0f565b61047482610df1565b6000610495610ea3565b905090565b6000806104a5610ed5565b90506bffffffffffffffffffffffff811061052d5760405162461bcd60e51b815260206004820152602360248201527f43484152414341544552533a204d61782063686172616374657273207265616360448201527f686564000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610535610ddc565b6001600160a01b0316633ae7af0861056c7f4368617261637465727300000000000000000000000000000000000000000000610f08565b6040516001600160a01b03891660248201526044810185905260640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f40c10f1900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526106189291906004016141a2565b6000604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065f9190810190614200565b5061066981610a34565b91506106758286610f55565b61067f8282611024565b610688846110a3565b156106d55760405162461bcd60e51b815260206004820152601360248201527f4e616d6520616c726561647920657869737473000000000000000000000000006044820152606401610524565b6106e0846001611148565b6106ea8285611201565b6106f48184611280565b509392505050565b600061070860136112b3565b821061071657506014919050565b60005b6014811015610774578261072c826112b3565b1115801561074b57508261074961074483600161424b565b6112b3565b115b156107625761075b81600161424b565b9150610774565b8061076c8161425e565b915050610719565b50919050565b60006104748261132f565b6000610474826113d9565b60008061079d8360601c90565b90506bffffffffffffffffffffffff831660006107b861146b565b6001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016107e591815260200190565b602060405180830381865afa92505050801561081e575060408051601f3d908101601f1916820190925261081b91810190614278565b60015b1561089d5761082b61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161085891815260200190565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190614278565b9150505b826001600160a01b0316816001600160a01b0316149350505050919050565b6108c582611475565b156109385760405162461bcd60e51b815260206004820152602b60248201527f434841524143544552533a2063686172616374657220616c726561647920696e60448201527f2067616d6520776f726c640000000000000000000000000000000000000000006064820152608401610524565b61094182611507565b61098d5760405162461bcd60e51b815260206004820152601360248201527f4e6f7420796f7572204368617261637465722e000000000000000000000000006044820152606401610524565b600061099983836115c3565b610a2d8482856040516020016109b191815260200190565b60408051601f19818403018152908290526109d0939291602401614295565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb2aa60a4000000000000000000000000000000000000000000000000000000001790526116ac565b5050505050565b600080610a3f61146b565b6001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610a6c91815260200190565b602060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad9190614278565b60601b6bffffffffffffffffffffffff19169290921792915050565b6000610ad483610790565b8015610b895750816001600160a01b0316610aed61146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff861660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190614278565b6001600160a01b0316145b9392505050565b610b9982611507565b610be55760405162461bcd60e51b815260206004820152601a60248201527f434841524143544552533a204e4f5420415554484f52495a45440000000000006044820152606401610524565b610bfd6bffffffffffffffffffffffff831682611280565b5050565b610c0a81611507565b610c565760405162461bcd60e51b815260206004820152601260248201527f6e6f7420796f75722063686172616374657200000000000000000000000000006044820152606401610524565b610c5f81611475565b15610cac5760405162461bcd60e51b815260206004820152601960248201527f796f75206861766520656e7465726564207468652067616d65000000000000006044820152606401610524565b6000610cb782610df1565b600160e0820152608081015160a08201529050610cd4828261175a565b610cdc610ddc565b6040517ffda0ce5000000000000000000000000000000000000000000000000000000000815260048101849052674563918244f4000060248201526001600160a01b03919091169063fda0ce5090604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b50505050610d67610ddc565b6001600160a01b031663f9d175ed836040518263ffffffff1660e01b8152600401610d9491815260200190565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610bfd82600161180b565b60006104748261188f565b600061049561192c565b600061047482611936565b610df9613e0f565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e2f57610e2f6142bd565b602090810291909101015260008080610e887f7462554400000000000000000000000053746174730000000000000000000000857ee10800202001202020202000000000000000000000000000000000000000006119c8565b925092509250610e99838383611a98565b9695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c80610ed25750335b90565b600080610ee0611b10565b90506000610eef826000611b78565b610efa90600161424b565b905061047482600083611c29565b60006104747f7379000000000000000000000000000000000000000000000000000000000000837f45524337323153797374656d0000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f8b57610f8b6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600185604051602001610fea919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190527e55040020142001000000000000000000000000000000000000000000000000611d70565b505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061105a5761105a6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600085604051602001610fea91815260200190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106110dc576110dc6142bd565b602090810291909101015260006111347f746255440000000000000000000000004e616d6545786973747300000000000083837e01010001000000000000000000000000000000000000000000000000000000611e25565b90506111408160f81c90565b949350505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061117e5761117e6142bd565b60200260200101818152505061101f7f746255440000000000000000000000004e616d6545786973747300000000000060001b826000856040516020016111cc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611d70565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611237576112376142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600285604051602001610fea91815260200190565b610bfd6112ac7f4368617261637465727300000000000000000000000000000000000000000000611ee2565b8383611f2f565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b816000815181106112ef576112ef6142bd565b602090810291909101015260006111407f746255440000000000000000000000004c6576656c73000000000000000000008383630100080160dd1b611e25565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611368576113686142bd565b602090810291909101015260006113c17f74625544000000000000000000000000537461747300000000000000000000008360027ee1080020200120202020200000000000000000000000000000000000000000611e25565b905060f881901c600281111561114057611140613ec0565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611412576114126142bd565b602090810291909101015260006111407f74625544000000000000000000000000436861726163746572730000000000008360027e55040020142001000000000000000000000000000000000000000000000000611e25565b6000610495611b10565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106114ae576114ae6142bd565b602090810291909101015260006111347f74625544000000000000000000000000436861726163746572730000000000008360037e55040020142001000000000000000000000000000000000000000000000000611e25565b600061151161146b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190614278565b6001600160a01b03166115b361048b565b6001600160a01b03161492915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106115f9576115f96142bd565b602090810291909101015261101f7f7462554400000000000000000000000053746174730000000000000000000000826002858181111561163c5761163c613ec0565b604051602001611677919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b60408051601f198184030181529190527ee1080020200120202020200000000000000000000000000000000000000000611d70565b60606000806116c26116bd856142d3565b611f81565b91509150816000801b03611728576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000600035166004820152602401610524565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526111408285612051565b600061178c826000015183602001518460400151856060015186608001518760a001518860c001518960e0015161212c565b6040805160018082528183019092529192506000916060918391906020808301908036833701905050905085816000815181106117cb576117cb6142bd565b60209081029190910101526118037f74625544000000000000000000000000537461747300000000000000000000008286868661216a565b505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611841576118416142bd565b60200260200101818152505061101f7f746255440000000000000000000000004368617261637465727300000000000060001b82600385604051602001610fea91151560f81b815260010190565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118c8576118c86142bd565b602090810291909101015260006119217f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611e25565b60601c949350505050565b60006104956121e0565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061196f5761196f6142bd565b602090810291909101015260006111407f74625544000000000000000000000000537461747300000000000000000000008360067ee1080020200120202020200000000000000000000000000000000000000000611e25565b60606000606060006119d86121e0565b9050306001600160a01b03821603611a01576119f587878761221f565b93509350935050611a8f565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd90611a4a908a908a908a9060040161435f565b600060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119f59190810190614388565b93509350939050565b611aa0613e0f565b611aa984612327565b60e0890181905260c0890182905260a089018390526080890184905260608901859052886020810160408201886002811115611ae757611ae7613ec0565b6002811115611af857611af8613ec0565b90529790975250505093909252509195945050505050565b604080516000808252602082019092526000611b6e7f74625544000000000000000000000000556c74696d617465446f6d696e696f6e8360027e65060001141414141400000000000000000000000000000000000000000000611e25565b60601c9392505050565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110611bbd57611bbd6142bd565b6020026020010181815250508260001b81600181518110611be057611be06142bd565b60209081029190910101526000611c207f74625544000000000000000000000000436f756e7465727300000000000000008383630100080160dd1b611e25565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110611c6a57611c6a6142bd565b6020026020010181815250508260001b81600181518110611c8d57611c8d6142bd565b602002602001018181525050611cf37f74625544000000000000000000000000436f756e74657273000000000000000060001b82600085604051602001611cd691815260200190565b60408051601f19818403018152919052630100080160dd1b611d70565b50505050565b6000611d076070601061424b565b6fffffffffffffffffffffffffffffffff198316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790509392505050565b6000611d7a6121e0565b9050306001600160a01b03821603611d9e57611d998686868686612395565b611803565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae090611deb90899089908990899089906004016143eb565b600060405180830381600087803b158015611e0557600080fd5b505af1158015611e19573d6000803e3d6000fd5b50505050505050505050565b600080611e306121e0565b9050306001600160a01b03821603611e5657611e4e868686866123aa565b915050611140565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990611ea1908990899089908990600401614432565b602060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614461565b60006104747f7462000000000000000000000000000000000000000000000000000000000000837f546f6b656e555249000000000000000000000000000000000000000000000000611cf9565b604080516001808252818301909252600091602080830190803683370190505090508260001b81600081518110611f6857611f686142bd565b602002602001018181525050611cf384826000856123d7565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611fda57611fda6142bd565b6020908102919091010152600080806120337f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e240200200400000000000000000000000000000000000000000000000000006119c8565b925092509250612044838383612488565b9550955050505050915091565b6060600061205d61192c565b90506001600160a01b038116300361209e57600061208561207c610ea3565b600087876124a0565b935090508061209757612097836125db565b5050610474565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af08906120e590879087906004016141a2565b6000604051808303816000875af1158015612104573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190614200565b6060888888888888888860405160200161214d98979695949392919061447a565b604051602081830303815290604052905098975050505050505050565b60006121746121e0565b9050306001600160a01b0382160361219357611d9986868686866125e3565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb90611deb90899089908990899089906004016144bf565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b03168061221a573391505090565b919050565b6060600060606000612230856125f9565b905061223d87878361261c565b9350600061224a86612655565b9050801561231c5761225c8888612692565b935066ffffffffffffff841667ffffffffffffffff81111561228057612280613f6d565b6040519080825280601f01601f1916602001820160405280156122aa576020820181803683370190505b5092506020830160005b828160ff1610156123195760006122cc8b8b846126a5565b905060006122e9888460ff166028026038011c64ffffffffff1690565b90506122f88260008387612725565b612302818561424b565b93505050808061231190614510565b9150506122b4565b50505b505093509350939050565b600080600080600080600080612341896000016020015190565b60408a015160608b0151919950975060f81c600281111561236457612364613ec0565b60618a015160818b015160a18c015160c18d015160e1909d01519b9d9a9c939b929a91995097509195509350915050565b610a2d85856123a484876127f1565b85612822565b6000611c206123b98686612ac6565b60ff858116601b0360080285901c166123d285876127f1565b612b1c565b60006123e16121e0565b9050306001600160a01b03821603612404576123ff85858585612b6d565b610a2d565b6040517fef6ea8620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063ef6ea8629061244f90889088908890889060040161452f565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b505050505050505050565b60008061249485612ba8565b90969095509350505050565b600060606000806124b086612bbd565b90925090506001600160a01b03821661250157856124cd87612c61565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016105249291906141a2565b80612510576125108689612d8f565b861561257c577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e7300000000000000000000000000000000000000000000000000000000000017600061256482612ddb565b9050612579826125748b8461424b565b612e54565b50505b60006125888760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146125c0576125bb88888488612ef0565b6125cc565b6125cc88888488612f68565b90999098509650505050505050565b805160208201fd5b610a2d85858585856125f48b612fc9565b61304e565b600060086126096002602061456e565b6126139190614581565b9190911c919050565b60608160000361263b5750604080516020810190915260008152610b89565b60006126478585612ac6565b9050611c2081600085613387565b600060086001806126686002602061456e565b612672919061456e565b61267c919061456e565b6126869190614581565b8260ff911c1692915050565b6000610b896126a184846133aa565b5490565b600083836040516020016126ba929190614598565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b82156127ac576020831061274f5760208304840193506020838161274b5761274b6145d4565b0692505b82156127ac5760208390036000818410156127725750600019600884021c61277c565b50600019600882021c5b8554600886021b81845116821982161784525081841161279d575050611cf3565b50600194909401939182900391015b5b602082106127ce5783548152600190930192601f19909101906020016127ad565b8115611cf3576000600019600884021c8251865482191691161782525050505050565b600080805b8360ff168110156106f45761281860ff601b83900360080287901c168361424b565b91506001016127f6565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff00000000000000000000000000000000000000000000000000000000000016036128ac57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161289f939291906145ea565b60405180910390a2611cf3565b60006128b88585612ac6565b905060006128c586613400565b905060005b815181101561299a5760008282815181106128e7576128e76142bd565b602002602001015190506129136004826affffffffffffffffffffff191661348990919063ffffffff16565b15612991576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d9061295e908b908b908b908b9060040161461d565b600060405180830381600087803b15801561297857600080fd5b505af115801561298c573d6000803e3d6000fd5b505050505b506001016128ca565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516129cf939291906145ea565b60405180910390a26129ea828565ffffffffffff16856134a7565b60005b8151811015612abd576000828281518110612a0a57612a0a6142bd565b60200260200101519050612a366008826affffffffffffffffffffff191661348990919063ffffffff16565b15612ab4576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612a81908b908b908b908b9060040161461d565b600060405180830381600087803b158015612a9b57600080fd5b505af1158015612aaf573d6000803e3d6000fd5b505050505b506001016129ed565b50505050505050565b60008282604051602001612adb929190614598565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600060208210612b4257602082048401935060208281612b3e57612b3e6145d4565b0691505b508254600882021b6020829003808411156106f4576001850154600882021c82179150509392505050565b6000612b798585612692565b90506000612b96828560ff166028026038011c64ffffffffff1690565b905061180386868660008588886134bd565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612bf757612bf76142bd565b602090810291909101015260008080612c507f7462776f726c6400000000000000000053797374656d73000000000000000000857e1502001401000000000000000000000000000000000000000000000000000061221f565b9250925092506120448383836138f7565b606081601081901b6000612c7483613903565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615612ccf57612cca7fffffffffffffffffffffffffffff000000000000000000000000000000000000841661391a565b612d06565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6fffffffffffffffffffffffffffffffff19831615612d2d57612d288361391a565b612d64565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b604051602001612d7693929190614656565b6040516020818303038152906040529350505050919050565b612d9982826139a0565b610bfd57612da682612c61565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016105249291906146e4565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612e1457612e146142bd565b602090810291909101015260006111407f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b6123aa565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110612e8a57612e8a6142bd565b60200260200101818152505061101f7f7462776f726c6400000000000000000042616c616e636573000000000000000060001b82600085604051602001612ed391815260200190565b60408051601f19818403018152919052630100080160dd1b612395565b60006060836001600160a01b03166000612f0b8589896139fe565b604051612f18919061470f565b60006040518083038185875af1925050503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b606091505b509097909650945050505050565b60006060836001600160a01b0316612f818488886139fe565b604051612f8e919061470f565b600060405180830381855af49150503d8060008114612f55576040519150601f19603f3d011682016040523d82523d6000602084013e612f5a565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161301857507e60030220202000000000000000000000000000000000000000000000000000919050565b6104746130457f746273746f72650000000000000000005461626c65730000000000000000000084613a2d565b60206000612b1c565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036130da57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516130cd949392919061472b565b60405180910390a2611803565b60006130e587613400565b905060005b81518110156131be576000828281518110613107576131076142bd565b602002602001015190506131336001826affffffffffffffffffffff191661348990919063ffffffff16565b156131b5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90613182908c908c908c908c908c908c9060040161476a565b600060405180830381600087803b15801561319c57600080fd5b505af11580156131b0573d6000803e3d6000fd5b505050505b506001016130ea565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516131f5949392919061472b565b60405180910390a260006132098888612ac6565b90506000602087019050613221826000895184613a49565b600061322c85612655565b11156132b057600061323e8a8a6133aa565b878155905060208601915060008060005b61325888612655565b8160ff1610156132ab5761326d8d8d836126a5565b92506132888a8260ff166028026038011c64ffffffffff1690565b91506132978360008488613a49565b6132a1828661424b565b945060010161324f565b505050505b60005b8351811015611e195760008482815181106132d0576132d06142bd565b602002602001015190506132fc6002826affffffffffffffffffffff191661348990919063ffffffff16565b1561337e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061334b908e908e908e908e908e908e9060040161476a565b600060405180830381600087803b15801561336557600080fd5b505af1158015613379573d6000803e3d6000fd5b505050505b506001016132b3565b60405160208101601f19603f84840101166040528282526106f485858584612725565b600082826040516020016133bf929190614598565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061343a5761343a6142bd565b602090810291909101015260006134727f746273746f726500000000000000000053746f7265486f6f6b730000000000008383613b08565b90506111406134848260008451613b42565b613bd0565b60008160ff168261349a8560581c90565b1660ff1614905092915050565b61101f838383516134b88560200190565b613a49565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff000000000000000000000000000000000000000000000000000000000000161461357d577f7462000000000000000000000000000000000000000000000000000000000000878860405160200161353b91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526105249392916004016147c3565b6000613598828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff16836135b1919061456e565b6135bb919061424b565b90508082141580156135dd5750816135d38688614804565b64ffffffffff1614155b1561362d576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610524565b818664ffffffffff16111561367e576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610524565b600061368b848984613be1565b905060006136988b613400565b905060005b81518110156137635760008282815181106136ba576136ba6142bd565b602002602001015190506136e66010826affffffffffffffffffffff191661348990919063ffffffff16565b1561375a57606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016137279796959493929190614829565b600060405180830381600087803b15801561374157600080fd5b505af1158015613755573d6000803e3d6000fd5b505050505b5060010161369d565b5064ffffffffff881660005b8a60ff168160ff1610156137a257613796878260ff166028026038011c64ffffffffff1690565b9091019060010161376f565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d6040516137dd96959493929190614887565b60405180910390a2508284146137fe5760006137f98c8c6133aa565b839055505b600061380b8c8c8c6126a5565b905061381f818a64ffffffffff16896134a7565b5060005b81518110156138e9576000828281518110613840576138406142bd565b6020026020010151905061386c6020826affffffffffffffffffffff191661348990919063ffffffff16565b156138e057606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b81526004016138ad9796959493929190614829565b600060405180830381600087803b1580156138c757600080fd5b505af11580156138db573d6000803e3d6000fd5b505050505b50600101613823565b505050505050505050505050565b60008061249485613caf565b60006139116070601061424b565b9190911b919050565b606060005b6010811015613970576fffffffffffffffffffffffffffffffff198316600882021b7fff0000000000000000000000000000000000000000000000000000000000000016156139705760010161391f565b604080516fffffffffffffffffffffffffffffffff19851660208201528151603090910190915281815280611140565b60006139ee7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783613ccb565b80610b895750610b898383613ccb565b6060838383604051602001613a15939291906148e3565b60405160208183030381529060405290509392505050565b6040805160208101849052908101829052600090606001612adb565b8215613ac35760208310613a7357602083048401935060208381613a6f57613a6f6145d4565b0692505b8215613ac35760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411613ab4575050611cf3565b50600194909401939182900391015b5b60208210613ae55780518455600190930192601f1990910190602001613ac4565b8115611cf3576000600019600884021c8554835182191691161785555050505050565b6060611140613b188585856126a5565b6000613b3d85613b288989612692565b9060ff166028026038011c64ffffffffff1690565b613387565b600081831180613b525750835182115b15613b8f578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161052493929190614922565b60208401613b9d848261424b565b90506000613bab858561456e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610b898360156000613d94565b600064ffffffffff821115613c25576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610524565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510613c575780850382019150613c5f565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b6020810151603482015160609190911c9060009060f81c612bb6565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613d0457613d046142bd565b602002602001018181525050826001600160a01b031660001b81600181518110613d3057613d306142bd565b60209081029190910101526000613d887f7462776f726c640000000000000000005265736f75726365416363657373000083837e010100010000000000000000000000000000000000000000000000000000006123aa565b9050611c208160f81c90565b60606000613da28560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281613dc857613dc86145d4565b04905060405193506020840160208202810160405281855260005b82811015613e03578451871c825293870193602090910190600101613de3565b50505050509392505050565b604051806101000160405280600081526020016000815260200160006002811115613e3c57613e3c613ec0565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208284031215613e7757600080fd5b5035919050565b600060208284031215613e9057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b8957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110613ef457634e487b7160e01b600052602160045260246000fd5b50565b81518152602080830151908201526040820151610100820190613f1981613ed6565b80604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b6001600160a01b0381168114613ef457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fac57613fac613f6d565b604052919050565b600067ffffffffffffffff821115613fce57613fce613f6d565b50601f01601f191660200190565b600082601f830112613fed57600080fd5b8135614000613ffb82613fb4565b613f83565b81815284602083860101111561401557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561404757600080fd5b833561405281613f58565b925060208401359150604084013567ffffffffffffffff81111561407557600080fd5b61408186828701613fdc565b9150509250925092565b6020810161409883613ed6565b91905290565b6000806000606084860312156140b357600080fd5b83359250602084013591506040840135600381106140d057600080fd5b809150509250925092565b600080604083850312156140ee57600080fd5b82359150602083013561410081613f58565b809150509250929050565b6000806040838503121561411e57600080fd5b82359150602083013567ffffffffffffffff81111561413c57600080fd5b61414885828601613fdc565b9150509250929050565b60005b8381101561416d578181015183820152602001614155565b50506000910152565b6000815180845261418e816020860160208601614152565b601f01601f19169290920160200192915050565b8281526040602082015260006111406040830184614176565b600082601f8301126141cc57600080fd5b81516141da613ffb82613fb4565b8181528460208386010111156141ef57600080fd5b611140826020830160208701614152565b60006020828403121561421257600080fd5b815167ffffffffffffffff81111561422957600080fd5b611140848285016141bb565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047457610474614235565b6000600019820361427157614271614235565b5060010190565b60006020828403121561428a57600080fd5b8151610b8981613f58565b8381526142a183613ed6565b826020820152606060408201526000611c206060830184614176565b634e487b7160e01b600052603260045260246000fd5b6000815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561431b5780818460040360031b1b83161693505b505050919050565b60008151808452602080850194506020840160005b8381101561435457815187529582019590820190600101614338565b509495945050505050565b8381526060602082015260006143786060830185614323565b9050826040830152949350505050565b60008060006060848603121561439d57600080fd5b835167ffffffffffffffff808211156143b557600080fd5b6143c1878388016141bb565b94506020860151935060408601519150808211156143de57600080fd5b50614081868287016141bb565b85815260a06020820152600061440460a0830187614323565b60ff86166040840152828103606084015261441f8186614176565b9150508260808301529695505050505050565b84815260806020820152600061444b6080830186614323565b60ff949094166040830152506060015292915050565b60006020828403121561447357600080fd5b5051919050565b88815287602082015261448c87613ed6565b60f89690961b604087015260418601949094526061850192909252608184015260a183015260c182015260e10192915050565b85815260a0602082015260006144d860a0830187614323565b82810360408401526144ea8187614176565b905084606084015282810360808401526145048185614176565b98975050505050505050565b600060ff821660ff810361452657614526614235565b60010192915050565b8481526080602082015260006145486080830186614323565b60ff8516604084015282810360608401526145638185614176565b979650505050505050565b8181038181111561047457610474614235565b808202811582820484141761047457610474614235565b8281526000602080830184516020860160005b828110156145c7578151845292840192908401906001016145ab565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006145fd6060830186614323565b65ffffffffffff851660208401528281036040840152610e998185614176565b8481526080602082015260006146366080830186614323565b65ffffffffffff8516604084015282810360608401526145638185614176565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516146b7816003860160208901614152565b8084019050816003820152845191506146d7826004830160208801614152565b0160040195945050505050565b6040815260006146f76040830185614176565b90506001600160a01b03831660208301529392505050565b60008251614721818460208701614152565b9190910192915050565b60808152600061473e6080830187614323565b82810360208401526147508187614176565b905084604084015282810360608401526145638185614176565b86815260c06020820152600061478360c0830188614323565b82810360408401526147958188614176565b905085606084015282810360808401526147af8186614176565b9150508260a0830152979650505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000611c206060830184614176565b64ffffffffff81811683821601908082111561482257614822614235565b5092915050565b87815260e06020820152600061484260e0830189614323565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526148798185614176565b9a9950505050505050505050565b60c08152600061489a60c0830189614323565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526148d68185614176565b9998505050505050505050565b600084516148f5818460208901614152565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6060815260006149356060830186614176565b6020830194909452506040015291905056fea26469706673582212205c1861d323ad8a0004b311ef7f75024cde0dfa48823ac2e8e54f579ec3be1e0364736f6c63430008180033","sourceMap":"1812:6250:211:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:144;;;;;;;;;;-1:-1:-1;2973:144:211;;;;;:::i;:::-;3106:2;3082:26;;2973:144;;;;-1:-1:-1;;;;;363:55:229;;;345:74;;333:2;318:18;2973:144:211;;;;;;;;2331:198:123;;;;;;;;;;-1:-1:-1;2331:198:123;;;;;:::i;:::-;;:::i;:::-;;;932:14:229;;925:22;907:41;;895:2;880:18;2331:198:123;767:187:229;7936:124:211;;;;;;;;;;-1:-1:-1;7936:124:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1262:113:123:-;;;;;;;;;;;;;:::i;4111:837:211:-;;;;;;;;;;-1:-1:-1;4111:837:211;;;;;:::i;:::-;;:::i;:::-;;;4284:25:229;;;4272:2;4257:18;4111:837:211;4138:177:229;6106:492:211;;;;;;;;;;-1:-1:-1;6106:492:211;;;;;:::i;:::-;;:::i;1989:129::-;;;;;;;;;;-1:-1:-1;1989:129:211;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:123:-;;;;;;;;;;-1:-1:-1;3800:14:123;-1:-1:-1;;3796:25:123;3783:39;1616:110;1262:113;1853:130:211;;;;;;;;;;-1:-1:-1;1853:130:211;;;;;:::i;:::-;;:::i;3123:413::-;;;;;;;;;;-1:-1:-1;3123:413:211;;;;;:::i;:::-;;:::i;4954:545::-;;;;;;:::i;:::-;;:::i;:::-;;2460:266;;;;;;;;;;-1:-1:-1;2460:266:211;;;;;:::i;:::-;;:::i;3542:212::-;;;;;;;;;;-1:-1:-1;3542:212:211;;;;;:::i;:::-;;:::i;6604:219::-;;;;;;;;;;-1:-1:-1;6604:219:211;;;;;:::i;:::-;;:::i;5505:595::-;;;;;;;;;;-1:-1:-1;5505:595:211;;;;;:::i;:::-;;:::i;7669:125::-;;;;;;;;;;-1:-1:-1;7669:125:211;;;;;:::i;:::-;;:::i;1942:98:123:-;;;;;;;;;;;;;:::i;7800:130:211:-;;;;;;;;;;-1:-1:-1;7800:130:211;;;;;:::i;:::-;;:::i;2732:143::-;;;;;;;;;;-1:-1:-1;2732:143:211;;;;;:::i;:::-;2830:37;;;2732:143;2331:198:123;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;7936:124:211:-;7996:16;;:::i;:::-;8031:22;8041:11;8031:9;:22::i;1262:113:123:-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;4111:837:211:-;4221:19;4256:24;4283:28;:26;:28::i;:::-;4256:55;-1:-1:-1;4348:16:211;4329:35;;4321:83;;;;-1:-1:-1;;;4321:83:211;;6255:2:229;4321:83:211;;;6237:21:229;6294:2;6274:18;;;6267:30;6333:34;6313:18;;;6306:62;6404:5;6384:18;;;6377:33;6427:19;;4321:83:211;;;;;;;;;4421:8;:6;:8::i;:::-;-1:-1:-1;;;;;4414:21:211;;4449:37;4465:20;4449:15;:37::i;:::-;4488:65;;-1:-1:-1;;;;;6649:55:229;;4488:65:211;;;6631:74:229;6721:18;;;6714:34;;;6604:18;;4488:65:211;;;-1:-1:-1;;4488:65:211;;;;;;;;;;;;;;;;;;;;4414:149;;4488:65;4414:149;;;;;;;;;4488:65;4414:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4414:149:211;;;;;;;;;;;;:::i;:::-;;4587:35;4605:16;4587:17;:35::i;:::-;4573:49;;4632:41;4652:11;4665:7;4632:19;:41::i;:::-;4683:52;4705:11;4718:16;4683:21;:52::i;:::-;4754:25;4774:4;4754:19;:25::i;:::-;4753:26;4745:58;;;;-1:-1:-1;;;4745:58:211;;8662:2:229;4745:58:211;;;8644:21:229;8701:2;8681:18;;;8674:30;8740:21;8720:18;;;8713:49;8779:18;;4745:58:211;8460:343:229;4745:58:211;4813:31;4833:4;4839;4813:19;:31::i;:::-;4854:37;4873:11;4886:4;4854:18;:37::i;:::-;4901:40;4914:16;4932:8;4901:12;:40::i;:::-;4246:702;4111:837;;;;;:::o;6106:492::-;6181:20;6231:14;6242:2;6231:10;:14::i;:::-;6217:10;:28;6213:379;;-1:-1:-1;6276:2:211;6106:492;;;:::o;6213:379::-;6314:9;6309:273;6329:2;6325:1;:6;6309:273;;;6373:10;6356:13;6367:1;6356:10;:13::i;:::-;:27;;:61;;;;-1:-1:-1;6407:10:211;6387:17;6398:5;:1;6402;6398:5;:::i;:::-;6387:10;:17::i;:::-;:30;6356:61;6352:155;;;6456:5;:1;6460;6456:5;:::i;:::-;6441:20;;6483:5;;6352:155;6546:3;;;;:::i;:::-;;;;6309:273;;;;6106:492;;;:::o;1989:129::-;2049:14;2084:27;2099:11;2084:14;:27::i;1853:130::-;1912:13;1945:31;1964:11;1945:18;:31::i;3123:413::-;3193:4;3209:20;3232:28;3248:11;3106:2;3082:26;;2973:144;3232:28;3209:51;-1:-1:-1;2830:37:211;;;3270:15;3359:17;:15;:17::i;:::-;-1:-1:-1;;;;;3359:25:211;;3385:7;3359:34;;;;;;;;;;;;;4284:25:229;;4272:2;4257:18;;4138:177;3359:34:211;;;;;;;;;;;;;;;;;;;-1:-1:-1;3359:34:211;;;;;;;;-1:-1:-1;;3359:34:211;;;;;;;;;;;;:::i;:::-;;;3355:135;;;3436:17;:15;:17::i;:::-;-1:-1:-1;;;;;3436:25:211;;3462:7;3436:34;;;;;;;;;;;;;4284:25:229;;4272:2;4257:18;;4138:177;3436:34:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3426:44;;3394:87;3355:135;3517:12;-1:-1:-1;;;;;3506:23:211;:7;-1:-1:-1;;;;;3506:23:211;;3499:30;;;;;3123:413;;;:::o;4954:545::-;5069:33;5090:11;5069:20;:33::i;:::-;5068:34;5060:90;;;;-1:-1:-1;;;5060:90:211;;9785:2:229;5060:90:211;;;9767:21:229;9824:2;9804:18;;;9797:30;9863:34;9843:18;;;9836:62;9934:13;9914:18;;;9907:41;9965:19;;5060:90:211;9583:407:229;5060:90:211;5168:21;5177:11;5168:8;:21::i;:::-;5160:53;;;;-1:-1:-1;;;5160:53:211;;10197:2:229;5160:53:211;;;10179:21:229;10236:2;10216:18;;;10209:30;10275:21;10255:18;;;10248:49;10314:18;;5160:53:211;9995:343:229;5160:53:211;5223:26;5291:34;5306:11;5319:5;5291:14;:34::i;:::-;5382:110;5435:16;5453:11;5477;5466:23;;;;;;4284:25:229;;4272:2;4257:18;;4138:177;5466:23:211;;;;-1:-1:-1;;5466:23:211;;;;;;;;;;5400:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;5400:91:211;;;;;;;;;;;;;;;;;;;;5382:17;:110::i;:::-;;5050:449;4954:545;;;:::o;2460:266::-;2534:19;2565:20;2588:17;:15;:17::i;:::-;-1:-1:-1;;;;;2588:25:211;;2614:16;2588:43;;;;;;;;;;;;;4284:25:229;;4272:2;4257:18;;4138:177;2588:43:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2697:2;2663:36;-1:-1:-1;;2663:36:211;:55;;;;;;-1:-1:-1;;2460:266:211:o;3542:212::-;3621:4;3644:31;3663:11;3644:18;:31::i;:::-;:103;;;;;3742:5;-1:-1:-1;;;;;3679:68:211;:17;:15;:17::i;:::-;:59;;;;;2830:37;;;3679:59;;;4284:25:229;-1:-1:-1;;;;;3679:25:211;;;;;;;4257:18:229;;3679:59:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3679:68:211;;3644:103;3637:110;3542:212;-1:-1:-1;;;3542:212:211:o;6604:219::-;6698:21;6707:11;6698:8;:21::i;:::-;6690:60;;;;-1:-1:-1;;;6690:60:211;;10974:2:229;6690:60:211;;;10956:21:229;11013:2;10993:18;;;10986:30;11052:28;11032:18;;;11025:56;11098:18;;6690:60:211;10772:350:229;6690:60:211;6760:56;2830:37;;;6807:8;6760:12;:56::i;:::-;6604:219;;:::o;5505:595::-;5570:21;5579:11;5570:8;:21::i;:::-;5562:52;;;;-1:-1:-1;;;5562:52:211;;11329:2:229;5562:52:211;;;11311:21:229;11368:2;11348:18;;;11341:30;11407:20;11387:18;;;11380:48;11445:18;;5562:52:211;11127:342:229;5562:52:211;5633:33;5654:11;5633:20;:33::i;:::-;5632:34;5624:72;;;;-1:-1:-1;;;5624:72:211;;11676:2:229;5624:72:211;;;11658:21:229;11715:2;11695:18;;;11688:30;11754:27;11734:18;;;11727:55;11799:18;;5624:72:211;11474:349:229;5624:72:211;5706:26;5735:22;5745:11;5735:9;:22::i;:::-;5785:1;5767:15;;;:19;5825:23;;;;5796:19;;;:53;5706:51;-1:-1:-1;5859:33:211;5869:11;5706:51;5859:9;:33::i;:::-;5909:8;:6;:8::i;:::-;5902:51;;;;;;;;12028:25:229;;;5945:7:211;12069:18:229;;;12062:34;-1:-1:-1;;;;;5902:29:211;;;;;;;12001:18:229;;5902:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:8;:6;:8::i;:::-;-1:-1:-1;;;;;5993:38:211;;6032:11;5993:51;;;;;;;;;;;;;4284:25:229;;4272:2;4257:18;;4138:177;5993:51:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6054:39;6075:11;6088:4;6054:20;:39::i;7669:125::-;7729:7;7755:32;7775:11;7755:19;:32::i;1942:98:123:-;1981:7;2003:32;:30;:32::i;7800:130:211:-;7865:7;7891:32;7911:11;7891:19;:32::i;13270:402:194:-;13324:23;;:::i;:::-;13384:16;;;13398:1;13384:16;;;;;;;;;13355:26;;13384:16;;;;;;;;;;;-1:-1:-1;13384:16:194;13355:45;;13421:8;13406:9;13416:1;13406:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;13437:24;;;13524:80;1310:66;13569:9;1439:66;13524:21;:80::i;:::-;13436:168;;;;;;13617:50;13624:11;13637:15;13654:12;13617:6;:50::i;:::-;13610:57;13270:402;-1:-1:-1;;;;;;13270:402:194:o;2992:383:123:-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;7003:347:211:-;7059:7;7078:25;7106:42;:40;:42::i;:::-;7078:70;;7158:24;7185:50;7213:17;7233:1;7185:19;:50::i;:::-;:54;;7238:1;7185:54;:::i;:::-;7158:81;;7249:61;7269:17;7288:1;7292:16;7249:19;:61::i;1157:186:220:-;1215:10;1240:100;1275:15;1303:9;1320:18;1240:25;:100::i;4730:249:178:-;4828:16;;;4842:1;4828:16;;;;;;;;;4799:26;;4828:16;;;;;;;;;;;-1:-1:-1;4828:16:178;4799:45;;4865:11;4850:9;4860:1;4850:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;4883:91;1163:66;1147:83;;4920:9;4931:1;4952:5;4934:25;;;;;;;12445:2:229;12441:15;;;;-1:-1:-1;;12437:88:229;12425:101;;12551:2;12542:12;;12296:264;4934:25:178;;;;-1:-1:-1;;4934:25:178;;;;;;;;;1292:66;4883:26;:91::i;:::-;4793:186;4730:249;;:::o;3480:255::-;3582:16;;;3596:1;3582:16;;;;;;;;;3553:26;;3582:16;;;;;;;;;;;-1:-1:-1;3582:16:178;3553:45;;3619:11;3604:9;3614:1;3604:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;3637:93;1163:66;1147:83;;3674:9;3685:1;3706:7;3688:27;;;;;;12694:19:229;;12738:2;12729:12;;12565:182;2594:287:189;2700:16;;;2714:1;2700:16;;;;;;;;;2653:10;;;;2700:16;;;;;;;;;;;;-1:-1:-1;2700:16:189;2671:45;;2737:8;2722:9;2732:1;2722:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2752:13;2768:64;1069:66;2805:9;2752:13;1198:66;2768:26;:64::i;:::-;2752:80;;2846:29;2867:5;2854:20;;6948:5;6862:97;2846:29;2838:38;2594:287;-1:-1:-1;;;;2594:287:189:o;3890:240::-;3982:16;;;3996:1;3982:16;;;;;;;;;3953:26;;3982:16;;;;;;;;;;;-1:-1:-1;3982:16:189;3953:45;;4019:8;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4034:91;1069:66;1053:83;;4071:9;4082:1;4103:5;4085:25;;;;;;12903:14:229;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4085:25:189;;;;-1:-1:-1;;4085:25:189;;;;;;;;;1198:66;4034:26;:91::i;5941:246:178:-;6037:16;;;6051:1;6037:16;;;;;;;;;6008:26;;6037:16;;;;;;;;;;;-1:-1:-1;6037:16:178;6008:45;;6074:11;6059:9;6069:1;6059:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;6092:90;1163:66;1147:83;;6129:9;6140:1;6161:4;6143:24;;;;;;12694:19:229;;12738:2;12729:12;;12565:182;6829:168:211;6911:79;6932:38;6949:20;6932:16;:38::i;:::-;6972:7;6981:8;6911:20;:79::i;3297:296:183:-;3403:16;;;3417:1;3403:16;;;;;;;;;3348:18;;;;3403:16;;;;;;;;;;;;-1:-1:-1;3403:16:183;3374:45;;3456:5;3440:23;;3425:9;3435:1;3425:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;3470:13;3486:64;1061:66;3523:9;3470:13;-1:-1:-1;;;3486:26:183;:64::i;5624:288:194:-;5733:16;;;5747:1;5733:16;;;;;;;;;5683:13;;;;5733:16;;;;;;;;;;;;-1:-1:-1;5733:16:194;5704:45;;5770:8;5755:9;5765:1;5755:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;5785:13;5801:64;1310:66;5838:9;5849:1;1439:66;5801:26;:64::i;:::-;5785:80;-1:-1:-1;5886:20:194;;;;5878:29;;;;;;;;:::i;5306:279:178:-;5416:16;;;5430:1;5416:16;;;;;;;;;5367:12;;;;5416:16;;;;;;;;;;;;-1:-1:-1;5416:16:178;5387:45;;5453:11;5438:9;5448:1;5438:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;5471:13;5487:64;1163:66;5524:9;5535:1;1292:66;5487:26;:64::i;2279:175:211:-;2329:30;2404:42;:40;:42::i;6512:295:178:-;6623:16;;;6637:1;6623:16;;;;;;;;;6575:11;;;;6623:16;;;;;;;;;;;;-1:-1:-1;6623:16:178;6594:45;;6660:11;6645:9;6655:1;6645:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;6678:13;6694:64;1163:66;6731:9;6742:1;1292:66;6694:26;:64::i;7496:167:211:-;7558:4;7597:17;:15;:17::i;:::-;:59;;;;;2830:37;;;7597:59;;;4284:25:229;-1:-1:-1;;;;;7597:25:211;;;;;;;4257:18:229;;7597:59:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7581:75:211;:12;:10;:12::i;:::-;-1:-1:-1;;;;;7581:75:211;;;7496:167;-1:-1:-1;;7496:167:211:o;6279:248:194:-;6374:16;;;6388:1;6374:16;;;;;;;;;6345:26;;6374:16;;;;;;;;;;;-1:-1:-1;6374:16:194;6345:45;;6411:8;6396:9;6406:1;6396:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;6426:96;1310:66;6463:9;6474:1;6500:5;6494:12;;;;;;;;:::i;:::-;6477:30;;;;;;;13290:3:229;13286:16;;;;13304:66;13282:89;13270:102;;13397:1;13388:11;;13145:260;6477:30:194;;;;-1:-1:-1;;6477:30:194;;;;;;;;;1439:66;6426:26;:96::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;13966:98:229;13939:18;;3713:52:107;13822:248:229;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;15666:552:194:-;15737:24;15764:207;15784:6;:15;;;15807:6;:14;;;15829:6;:12;;;15849:6;:19;;;15876:6;:20;;;15904:6;:16;;;15928:6;:17;;;15953:6;:12;;;15764;:207::i;:::-;16075:16;;;16089:1;16075:16;;;;;;;;;15737:234;;-1:-1:-1;15978:30:194;;16014:25;;15978:30;;16075:16;;;;;;;;;;;;-1:-1:-1;16075:16:194;16046:45;;16112:8;16097:9;16107:1;16097:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;16127:86;1310:66;16159:9;16170:11;16183:15;16200:12;16127:21;:86::i;:::-;15731:487;;;;15666:552;;:::o;7183:249:178:-;7280:16;;;7294:1;7280:16;;;;;;;;;7251:26;;7280:16;;;;;;;;;;;-1:-1:-1;7280:16:178;7251:45;;7317:11;7302:9;7312:1;7302:12;;;;;;;;:::i;:::-;;;;;;:26;;;;;7335:92;1163:66;1147:83;;7372:9;7383:1;7404:6;7386:26;;;;;;12903:14:229;12896:22;12891:3;12887:32;12875:45;;12945:1;12936:11;;12752:201;4071:290:178;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:178;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:178:o;4048:97:123:-;4089:7;4111:29;:27;:29::i;10773:294:194:-;10892:16;;;10906:1;10892:16;;;;;;;;;10837:18;;;;10892:16;;;;;;;;;;;;-1:-1:-1;10892:16:194;10863:45;;10929:8;10914:9;10924:1;10914:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;10944:13;10960:64;1310:66;10997:9;11008:1;1439:66;10960:26;:64::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;17879:370:194:-;17990:23;;:::i;:::-;18219:25;18232:11;18219:12;:25::i;:::-;18198:12;;;18021:223;;;18173:17;;;18021:223;;;18149:16;;;18021:223;;;18121:20;;;18021:223;;;18094:19;;;18021:223;;;18029:6;18052:14;;;18074:12;;;18021:223;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;18021:223:194;;;;-1:-1:-1;17879:370:194;;;-1:-1:-1;;;;;17879:370:194:o;5084:257:195:-;5195:16;;;5136:22;5195:16;;;;;;;;;5218:13;5234:64;1248:66;5166:45;5282:1;1377:66;5234:26;:64::i;:::-;5312:23;;;5084:257;-1:-1:-1;;;5084:257:195:o;2640:388:180:-;2775:16;;;2789:1;2775:16;;;;;;;;2723:15;;;;2775:16;2789:1;2775:16;;;;;;;;;;-1:-1:-1;2775:16:180;2746:45;;2836:15;-1:-1:-1;;;;;2820:33:180;2812:42;;2797:9;2807:1;2797:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;2891:5;2875:23;;2860:9;2870:1;2860:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2905:13;2921:64;1065:66;2958:9;2905:13;-1:-1:-1;;;2921:26:180;:64::i;:::-;2905:80;2640:388;-1:-1:-1;;;;;2640:388:180:o;4344:349::-;4465:16;;;4479:1;4465:16;;;;;;;;4436:26;;4465:16;;;;;;;;;;-1:-1:-1;4465:16:180;4436:45;;4526:15;-1:-1:-1;;;;;4510:33:180;4502:42;;4487:9;4497:1;4487:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;4581:5;4565:23;;4550:9;4560:1;4550:12;;;;;;;;:::i;:::-;;;;;;:38;;;;;4595:93;1065:66;1049:83;;4632:9;4643:1;4664:7;4646:27;;;;;;12694:19:229;;12738:2;12729:12;;12565:182;4646:27:180;;;;-1:-1:-1;;4646:27:180;;;;;;;;;-1:-1:-1;;;4595:26:180;:93::i;:::-;4430:263;4344:349;;;:::o;1046:257:124:-;1133:10;1262:26;438:6;451:5:41;1262:26:124;:::i;:::-;-1:-1:-1;;1244:13:124;;:45;;451:5:41;1208:31:124;;;;;1189:15;;;:51;:101;;-1:-1:-1;1046:257:124;;;;;:::o;10761:455:46:-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;:::-;10980:232;;;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:289;10761:455;;;;;:::o;17775:457::-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1465:182:91:-;1524:10;1547:97;1583:14;1610:9;1627:14;1547:25;:97::i;3806:271:90:-;3933:16;;;3947:1;3933:16;;;;;;;;;3904:26;;3933:16;;;;;;;;;;;-1:-1:-1;3933:16:90;3904:45;;3986:7;3970:25;;3955:9;3965:1;3955:12;;;;;;;;:::i;:::-;;;;;;:40;;;;;4002:70;4030:8;4040:9;4051:1;4061:8;4002:27;:70::i;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;:::-;6214:57;;;;;;;;5805:471;;;:::o;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;18916:362:194:-;19145:12;19189:8;19199:7;19208:5;19215:12;19229:13;19244:9;19255:10;19267:5;19172:101;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19165:108;;18916:362;;;;;;;;;;:::o;6458:480:46:-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;6692:242::-;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;1836:227::-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;16961:760:194:-;17053:16;17077:15;17100:13;17121:20;17149:21;17178:16;17202:18;17228:13;17276:26;17293:5;17300:1;35409:27:23;35423:4;35409:27;35403:34;;35277:170;17276:26:194;35409:27:23;;;35403:34;35409:27;;;35403:34;17268:35:194;;-1:-1:-1;35403:34:23;-1:-1:-1;17382:33:194;;17374:42;;;;;;;;:::i;:::-;35409:27:23;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;35403:34;35409:27;;;;35403:34;16961:760:194;;;;17366:50;;35403:34:23;;;;-1:-1:-1;35403:34:23;-1:-1:-1;35403:34:23;;-1:-1:-1;35403:34:23;-1:-1:-1;16961:760:194;-1:-1:-1;;16961:760:194:o;23107:355:45:-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;36171:541::-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;11569:424:46:-;11720:21;11744:17;:15;:17::i;:::-;11720:41;-1:-1:-1;11796:4:46;-1:-1:-1;;;;;11771:30:46;;;11767:222;;11811:69;11837:7;11846:8;11856:17;11875:4;11811:25;:69::i;:::-;11767:222;;;11901:81;;;;;-1:-1:-1;;;;;11901:37:46;;;;;:81;;11939:7;;11948:8;;11958:17;;11977:4;;11901:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:279;11569:424;;;;:::o;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;:::-;8532:62;;;;-1:-1:-1;8363:236:133;-1:-1:-1;;;;8363:236:133:o;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;12066:286:45;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;51823:242:45:-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;;;17128:1567;;17013:1682;;;;:::o;50806:191::-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;8945:812:44:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;24152:738:45:-;24403:37;24443:66;24491:7;24500:8;24443:47;:66::i;:::-;24403:106;-1:-1:-1;24515:26:45;24551:49;24403:106;24582:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;24551:49:45;24515:86;;24608:277;24662:7;24687:8;24722:17;24765:1;24787:19;24820:4;24856:22;24608:36;:277::i;7963:242:133:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3968:25:124;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;-1:-1:-1;;;3961:24:132;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;12694:19:229;;12738:2;12729:12;;12565:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;-1:-1:-1;;;5230:24:132;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4015:652:45;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;5042:669:44;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;53371:230:45:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;3658:342:50:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:44:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;44254:4001:45:-;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;12694:19:229;;12738:2;12729:12;;12565:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;26250:12:229;26289:15;;;45340:92:45;;;26271:34:229;26341:15;;;26321:18;;;26314:43;26393:15;;26373:18;;;26366:43;26213:18;;45340:92:45;26044:371:229;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;26593:25:229;;;26666:12;26654:25;;26634:18;;;26627:53;26566:18;;45581:74:45;26420:266:229;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;-1:-1:-1;;2007:37:124;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;-1:-1:-1;;28531:79:229;;2092:30:124;;;28519:92:229;2092:30:124;;28627:12:229;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;51249:282:45:-;51494:30;;;;;;29374:19:229;;;29409:12;;;29402:28;;;51337:7:45;;29446:12:229;;51494:30:45;29185:279:229;1489:2340:44;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;37180:522:45:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;40103:220:56:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;4284:25:229;;;4257:18;;7664:67:24;4138:177:229;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7448:223:139:-;35423:4:23;35409:27;;35403:34;35409:27;;;35403:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6862:97:189;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;6948:5:189;6862:97;2681:1129:58;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:229:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:229;;14:180;-1:-1:-1;14:180:229:o;430:332::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;646:66;639:5;635:78;628:5;625:89;615:117;;728:1;725;718:12;959:184;-1:-1:-1;;;1008:1:229;1001:88;1108:4;1105:1;1098:15;1132:4;1129:1;1122:15;1148:266;1228:1;1221:5;1218:12;1208:200;;-1:-1:-1;;;1261:1:229;1254:88;1365:4;1362:1;1355:15;1393:4;1390:1;1383:15;1208:200;1148:266;:::o;1419:777::-;1642:13;;1624:32;;1712:4;1700:17;;;1694:24;1672:20;;;1665:54;1766:4;1754:17;;1748:24;1611:3;1596:19;;;1781:43;1748:24;1781:43;:::i;:::-;1862:12;1855:4;1844:9;1840:20;1833:42;;1931:4;1923:6;1919:17;1913:24;1906:4;1895:9;1891:20;1884:54;1994:4;1986:6;1982:17;1976:24;1969:4;1958:9;1954:20;1947:54;2057:4;2049:6;2045:17;2039:24;2032:4;2021:9;2017:20;2010:54;2120:4;2112:6;2108:17;2102:24;2095:4;2084:9;2080:20;2073:54;2183:4;2175:6;2171:17;2165:24;2158:4;2147:9;2143:20;2136:54;1419:777;;;;:::o;2201:154::-;-1:-1:-1;;;;;2280:5:229;2276:54;2269:5;2266:65;2256:93;;2345:1;2342;2335:12;2360:184;-1:-1:-1;;;2409:1:229;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2549:334;2620:2;2614:9;2676:2;2666:13;;-1:-1:-1;;2662:86:229;2650:99;;2779:18;2764:34;;2800:22;;;2761:62;2758:88;;;2826:18;;:::i;:::-;2862:2;2855:22;2549:334;;-1:-1:-1;2549:334:229:o;2888:246::-;2937:4;2970:18;2962:6;2959:30;2956:56;;;2992:18;;:::i;:::-;-1:-1:-1;3049:2:229;3037:15;-1:-1:-1;;3033:88:229;3123:4;3029:99;;2888:246::o;3139:464::-;3182:5;3235:3;3228:4;3220:6;3216:17;3212:27;3202:55;;3253:1;3250;3243:12;3202:55;3289:6;3276:20;3320:49;3336:32;3365:2;3336:32;:::i;:::-;3320:49;:::i;:::-;3394:2;3385:7;3378:19;3440:3;3433:4;3428:2;3420:6;3416:15;3412:26;3409:35;3406:55;;;3457:1;3454;3447:12;3406:55;3522:2;3515:4;3507:6;3503:17;3496:4;3487:7;3483:18;3470:55;3570:1;3545:16;;;3563:4;3541:27;3534:38;;;;3549:7;3139:464;-1:-1:-1;;;3139:464:229:o;3608:525::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3940:2:229;3925:18;;3912:32;;-1:-1:-1;3995:2:229;3980:18;;3967:32;4022:18;4011:30;;4008:50;;;4054:1;4051;4044:12;4008:50;4077;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;;3608:525;;;;;:::o;4687:235::-;4833:2;4818:18;;4845:37;4875:6;4845:37;:::i;:::-;4891:25;;;4687:235;:::o;4927:406::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5139:9;5126:23;5116:33;;5196:2;5185:9;5181:18;5168:32;5158:42;;5250:2;5239:9;5235:18;5222:32;5283:1;5276:5;5273:12;5263:40;;5299:1;5296;5289:12;5263:40;5322:5;5312:15;;;4927:406;;;;;:::o;5338:315::-;5406:6;5414;5467:2;5455:9;5446:7;5442:23;5438:32;5435:52;;;5483:1;5480;5473:12;5435:52;5519:9;5506:23;5496:33;;5579:2;5568:9;5564:18;5551:32;5592:31;5617:5;5592:31;:::i;:::-;5642:5;5632:15;;;5338:315;;;;;:::o;5658:390::-;5736:6;5744;5797:2;5785:9;5776:7;5772:23;5768:32;5765:52;;;5813:1;5810;5803:12;5765:52;5849:9;5836:23;5826:33;;5910:2;5899:9;5895:18;5882:32;5937:18;5929:6;5926:30;5923:50;;;5969:1;5966;5959:12;5923:50;5992;6034:7;6025:6;6014:9;6010:22;5992:50;:::i;:::-;5982:60;;;5658:390;;;;;:::o;6759:250::-;6844:1;6854:113;6868:6;6865:1;6862:13;6854:113;;;6944:11;;;6938:18;6925:11;;;6918:39;6890:2;6883:10;6854:113;;;-1:-1:-1;;7001:1:229;6983:16;;6976:27;6759:250::o;7014:329::-;7055:3;7093:5;7087:12;7120:6;7115:3;7108:19;7136:76;7205:6;7198:4;7193:3;7189:14;7182:4;7175:5;7171:16;7136:76;:::i;:::-;7257:2;7245:15;-1:-1:-1;;7241:88:229;7232:98;;;;7332:4;7228:109;;7014:329;-1:-1:-1;;7014:329:229:o;7348:320::-;7555:6;7544:9;7537:25;7598:2;7593;7582:9;7578:18;7571:30;7518:4;7618:44;7658:2;7647:9;7643:18;7635:6;7618:44;:::i;7673:442::-;7726:5;7779:3;7772:4;7764:6;7760:17;7756:27;7746:55;;7797:1;7794;7787:12;7746:55;7826:6;7820:13;7857:49;7873:32;7902:2;7873:32;:::i;7857:49::-;7931:2;7922:7;7915:19;7977:3;7970:4;7965:2;7957:6;7953:15;7949:26;7946:35;7943:55;;;7994:1;7991;7984:12;7943:55;8007:77;8081:2;8074:4;8065:7;8061:18;8054:4;8046:6;8042:17;8007:77;:::i;8120:335::-;8199:6;8252:2;8240:9;8231:7;8227:23;8223:32;8220:52;;;8268:1;8265;8258:12;8220:52;8301:9;8295:16;8334:18;8326:6;8323:30;8320:50;;;8366:1;8363;8356:12;8320:50;8389:60;8441:7;8432:6;8421:9;8417:22;8389:60;:::i;8808:184::-;-1:-1:-1;;;8857:1:229;8850:88;8957:4;8954:1;8947:15;8981:4;8978:1;8971:15;8997:125;9062:9;;;9083:10;;;9080:36;;;9096:18;;:::i;9127:195::-;9166:3;-1:-1:-1;;9190:5:229;9187:77;9184:103;;9267:18;;:::i;:::-;-1:-1:-1;9314:1:229;9303:13;;9127:195::o;9327:251::-;9397:6;9450:2;9438:9;9429:7;9425:23;9421:32;9418:52;;;9466:1;9463;9456:12;9418:52;9498:9;9492:16;9517:31;9542:5;9517:31;:::i;10343:424::-;10565:6;10554:9;10547:25;10581:37;10611:6;10581:37;:::i;:::-;10654:6;10649:2;10638:9;10634:18;10627:34;10697:2;10692;10681:9;10677:18;10670:30;10528:4;10717:44;10757:2;10746:9;10742:18;10734:6;10717:44;:::i;12107:184::-;-1:-1:-1;;;12156:1:229;12149:88;12256:4;12253:1;12246:15;12280:4;12277:1;12270:15;13410:407;13493:5;13533;13527:12;13575:4;13568:5;13564:16;13558:23;13600:66;13692:2;13688;13684:11;13675:20;;13718:1;13710:6;13707:13;13704:107;;;13798:2;13792;13782:6;13779:1;13775:14;13772:1;13768:22;13764:31;13760:2;13756:40;13752:49;13743:58;;13704:107;;;;13410:407;;;:::o;14075:439::-;14128:3;14166:5;14160:12;14193:6;14188:3;14181:19;14219:4;14248;14243:3;14239:14;14232:21;;14287:4;14280:5;14276:16;14310:1;14320:169;14334:6;14331:1;14328:13;14320:169;;;14395:13;;14383:26;;14429:12;;;;14464:15;;;;14356:1;14349:9;14320:169;;;-1:-1:-1;14505:3:229;;14075:439;-1:-1:-1;;;;;14075:439:229:o;14519:468::-;14819:6;14808:9;14801:25;14862:2;14857;14846:9;14842:18;14835:30;14782:4;14882:56;14934:2;14923:9;14919:18;14911:6;14882:56;:::i;:::-;14874:64;;14974:6;14969:2;14958:9;14954:18;14947:34;14519:468;;;;;;:::o;14992:655::-;15134:6;15142;15150;15203:2;15191:9;15182:7;15178:23;15174:32;15171:52;;;15219:1;15216;15209:12;15171:52;15252:9;15246:16;15281:18;15322:2;15314:6;15311:14;15308:34;;;15338:1;15335;15328:12;15308:34;15361:60;15413:7;15404:6;15393:9;15389:22;15361:60;:::i;:::-;15351:70;;15461:2;15450:9;15446:18;15440:25;15430:35;;15511:2;15500:9;15496:18;15490:25;15474:41;;15540:2;15530:8;15527:16;15524:36;;;15556:1;15553;15546:12;15524:36;;15579:62;15633:7;15622:8;15611:9;15607:24;15579:62;:::i;15652:709::-;16022:6;16011:9;16004:25;16065:3;16060:2;16049:9;16045:18;16038:31;15985:4;16092:57;16144:3;16133:9;16129:19;16121:6;16092:57;:::i;:::-;16197:4;16189:6;16185:17;16180:2;16169:9;16165:18;16158:45;16251:9;16243:6;16239:22;16234:2;16223:9;16219:18;16212:50;16279:32;16304:6;16296;16279:32;:::i;:::-;16271:40;;;16348:6;16342:3;16331:9;16327:19;16320:35;15652:709;;;;;;;;:::o;16366:548::-;16690:6;16679:9;16672:25;16733:3;16728:2;16717:9;16713:18;16706:31;16653:4;16754:57;16806:3;16795:9;16791:19;16783:6;16754:57;:::i;:::-;16859:4;16847:17;;;;16842:2;16827:18;;16820:45;-1:-1:-1;16896:2:229;16881:18;16874:34;16746:65;16366:548;-1:-1:-1;;16366:548:229:o;16919:184::-;16989:6;17042:2;17030:9;17021:7;17017:23;17013:32;17010:52;;;17058:1;17055;17048:12;17010:52;-1:-1:-1;17081:16:229;;16919:184;-1:-1:-1;16919:184:229:o;17108:707::-;17455:6;17450:3;17443:19;17492:6;17487:2;17482:3;17478:12;17471:28;17508:37;17538:6;17508:37;:::i;:::-;17579:3;17575:16;;;;17570:2;17561:12;;17554:38;17617:2;17608:12;;17601:28;;;;17654:2;17645:12;;17638:28;;;;17691:3;17682:13;;17675:29;17729:3;17720:13;;17713:29;17767:3;17758:13;;17751:29;17805:3;17796:13;;17108:707;-1:-1:-1;;17108:707:229:o;17820:794::-;18215:6;18204:9;18197:25;18258:3;18253:2;18242:9;18238:18;18231:31;18178:4;18285:57;18337:3;18326:9;18322:19;18314:6;18285:57;:::i;:::-;18390:9;18382:6;18378:22;18373:2;18362:9;18358:18;18351:50;18424:32;18449:6;18441;18424:32;:::i;:::-;18410:46;;18492:6;18487:2;18476:9;18472:18;18465:34;18548:9;18540:6;18536:22;18530:3;18519:9;18515:19;18508:51;18576:32;18601:6;18593;18576:32;:::i;:::-;18568:40;17820:794;-1:-1:-1;;;;;;;;17820:794:229:o;18619:175::-;18656:3;18700:4;18693:5;18689:16;18729:4;18720:7;18717:17;18714:43;;18737:18;;:::i;:::-;18786:1;18773:15;;18619:175;-1:-1:-1;;18619:175:229:o;18799:604::-;19108:6;19097:9;19090:25;19151:3;19146:2;19135:9;19131:18;19124:31;19071:4;19178:57;19230:3;19219:9;19215:19;19207:6;19178:57;:::i;:::-;19283:4;19275:6;19271:17;19266:2;19255:9;19251:18;19244:45;19337:9;19329:6;19325:22;19320:2;19309:9;19305:18;19298:50;19365:32;19390:6;19382;19365:32;:::i;:::-;19357:40;18799:604;-1:-1:-1;;;;;;;18799:604:229:o;19735:128::-;19802:9;;;19823:11;;;19820:37;;;19837:18;;:::i;19868:168::-;19941:9;;;19972;;19989:15;;;19983:22;;19969:37;19959:71;;20010:18;;:::i;20041:640::-;20292:6;20287:3;20280:19;20262:3;20318:2;20351;20346:3;20342:12;20383:6;20377:13;20448:2;20440:6;20436:15;20469:1;20479:175;20493:6;20490:1;20487:13;20479:175;;;20556:13;;20542:28;;20592:14;;;;20629:15;;;;20515:1;20508:9;20479:175;;;-1:-1:-1;20670:5:229;;20041:640;-1:-1:-1;;;;;;;20041:640:229:o;20686:184::-;-1:-1:-1;;;20735:1:229;20728:88;20835:4;20832:1;20825:15;20859:4;20856:1;20849:15;20875:511;21126:2;21115:9;21108:21;21089:4;21152:56;21204:2;21193:9;21189:18;21181:6;21152:56;:::i;:::-;21256:14;21248:6;21244:27;21239:2;21228:9;21224:18;21217:55;21320:9;21312:6;21308:22;21303:2;21292:9;21288:18;21281:50;21348:32;21373:6;21365;21348:32;:::i;21391:616::-;21702:6;21691:9;21684:25;21745:3;21740:2;21729:9;21725:18;21718:31;21665:4;21772:57;21824:3;21813:9;21809:19;21801:6;21772:57;:::i;:::-;21877:14;21869:6;21865:27;21860:2;21849:9;21845:18;21838:55;21941:9;21933:6;21929:22;21924:2;21913:9;21909:18;21902:50;21969:32;21994:6;21986;21969:32;:::i;22012:925::-;22461:66;22453:6;22449:79;22444:3;22437:92;22419:3;22548;22580:2;22576:1;22571:3;22567:11;22560:23;22612:6;22606:13;22628:74;22695:6;22691:1;22686:3;22682:11;22675:4;22667:6;22663:17;22628:74;:::i;:::-;22730:6;22725:3;22721:16;22711:26;;22765:2;22761:1;22757:2;22753:10;22746:22;22799:6;22793:13;22777:29;;22815:75;22881:8;22877:1;22873:2;22869:10;22862:4;22854:6;22850:17;22815:75;:::i;:::-;22910:17;22929:1;22906:25;;22012:925;-1:-1:-1;;;;;22012:925:229:o;22942:339::-;23119:2;23108:9;23101:21;23082:4;23139:44;23179:2;23168:9;23164:18;23156:6;23139:44;:::i;:::-;23131:52;;-1:-1:-1;;;;;23223:6:229;23219:55;23214:2;23203:9;23199:18;23192:83;22942:339;;;;;:::o;23286:287::-;23415:3;23453:6;23447:13;23469:66;23528:6;23523:3;23516:4;23508:6;23504:17;23469:66;:::i;:::-;23551:16;;;;;23286:287;-1:-1:-1;;23286:287:229:o;23578:690::-;23913:3;23902:9;23895:22;23876:4;23940:57;23992:3;23981:9;23977:19;23969:6;23940:57;:::i;:::-;24045:9;24037:6;24033:22;24028:2;24017:9;24013:18;24006:50;24079:32;24104:6;24096;24079:32;:::i;:::-;24065:46;;24147:6;24142:2;24131:9;24127:18;24120:34;24202:9;24194:6;24190:22;24185:2;24174:9;24170:18;24163:50;24230:32;24255:6;24247;24230:32;:::i;24273:899::-;24729:6;24718:9;24711:25;24772:3;24767:2;24756:9;24752:18;24745:31;24692:4;24799:57;24851:3;24840:9;24836:19;24828:6;24799:57;:::i;:::-;24904:9;24896:6;24892:22;24887:2;24876:9;24872:18;24865:50;24938:32;24963:6;24955;24938:32;:::i;:::-;24924:46;;25006:6;25001:2;24990:9;24986:18;24979:34;25062:9;25054:6;25050:22;25044:3;25033:9;25029:19;25022:51;25090:32;25115:6;25107;25090:32;:::i;:::-;25082:40;;;25159:6;25153:3;25142:9;25138:19;25131:35;24273:899;;;;;;;;;:::o;25396:464::-;25643:66;25635:6;25631:79;25620:9;25613:98;25747:6;25742:2;25731:9;25727:18;25720:34;25790:2;25785;25774:9;25770:18;25763:30;25594:4;25810:44;25850:2;25839:9;25835:18;25827:6;25810:44;:::i;25865:174::-;25932:12;25964:10;;;25976;;;25960:27;;25999:11;;;25996:37;;;26013:18;;:::i;:::-;25996:37;25865:174;;;;:::o;26691:901::-;27116:6;27105:9;27098:25;27159:3;27154:2;27143:9;27139:18;27132:31;27079:4;27186:57;27238:3;27227:9;27223:19;27215:6;27186:57;:::i;:::-;27291:4;27279:17;;27274:2;27259:18;;27252:45;27316:12;27364:15;;;27359:2;27344:18;;27337:43;27417:15;;27411:3;27396:19;;27389:44;27464:3;27449:19;;27442:35;;;27514:22;;;27508:3;27493:19;;27486:51;27554:32;27518:6;27571;27554:32;:::i;:::-;27546:40;26691:901;-1:-1:-1;;;;;;;;;;26691:901:229:o;27597:788::-;27962:3;27951:9;27944:22;27925:4;27989:57;28041:3;28030:9;28026:19;28018:6;27989:57;:::i;:::-;28094:4;28086:6;28082:17;28077:2;28066:9;28062:18;28055:45;28148:14;28140:6;28136:27;28131:2;28120:9;28116:18;28109:55;28212:12;28204:6;28200:25;28195:2;28184:9;28180:18;28173:53;28263:6;28257:3;28246:9;28242:19;28235:35;28319:9;28311:6;28307:22;28301:3;28290:9;28286:19;28279:51;28347:32;28372:6;28364;28347:32;:::i;:::-;28339:40;27597:788;-1:-1:-1;;;;;;;;;27597:788:229:o;28650:530::-;28835:3;28873:6;28867:13;28889:66;28948:6;28943:3;28936:4;28928:6;28924:17;28889:66;:::i;:::-;29024:2;29020:15;;;;-1:-1:-1;;29016:88:229;28977:16;;;;29002:103;;;29132:2;29121:14;;29114:30;;;;29171:2;29160:14;;28650:530;-1:-1:-1;;28650:530:229:o;29469:359::-;29672:2;29661:9;29654:21;29635:4;29692:44;29732:2;29721:9;29717:18;29709:6;29692:44;:::i;:::-;29767:2;29752:18;;29745:34;;;;-1:-1:-1;29810:2:229;29795:18;29788:34;29684:52;29469:359;-1:-1:-1;29469:359:229:o","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","enterGame(bytes32)":"c74dedc8","getCharacterTokenId(bytes32)":"f8c67561","getClass(bytes32)":"23801570","getCurrentAvailableLevel(uint256)":"1ecb393f","getExperience(bytes32)":"ebee03bb","getName(bytes32)":"54b8d5e3","getOwner(bytes32)":"deb931a2","getOwnerAddress(bytes32)":"00d43ec6","getPlayerEntityId(uint256)":"8338f0e0","getStats(bytes32)":"0bb700dc","isValidCharacterId(bytes32)":"623daa05","isValidOwner(bytes32,address)":"9b63ec05","mintCharacter(address,bytes32,string)":"143f3021","rollStats(bytes32,bytes32,uint8)":"679ee16d","supportsInterface(bytes4)":"01ffc9a7","updateTokenUri(bytes32,string)":"b27cbcbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getCharacterTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"getCurrentAvailableLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getOwnerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterTokenId\",\"type\":\"uint256\"}],\"name\":\"getPlayerEntityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"getStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseHitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"currentHp\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct StatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"name\":\"isValidCharacterId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"isValidOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"characterId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"updateTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getOwnerAddress(bytes32)\":{\"details\":\"extracts the character nft owner address from the character Id\"},\"mintCharacter(address,bytes32,string)\":{\"params\":{\"account\":\"the address of the account that will own the character\",\"name\":\"the keccack256 hash of the characters name to check for duplicates\",\"tokenUri\":\"the token uri to be set for the character token\"},\"returns\":{\"characterId\":\"the bytes32 character id combination of the owner address and the tokenId\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/CharacterSystem.sol\":\"CharacterSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"constants.sol\":{\"keccak256\":\"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c\",\"dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM\"]},\"lib/ERC1155-puppet/IERC1155System.sol\":{\"keccak256\":\"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c\",\"dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi\"]},\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol\":{\"keccak256\":\"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b\",\"dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol\":{\"keccak256\":\"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16\",\"dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol\":{\"keccak256\":\"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47\",\"dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol\":{\"keccak256\":\"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2\",\"dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol\":{\"keccak256\":\"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733\",\"dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol\":{\"keccak256\":\"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c\",\"dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol\":{\"keccak256\":\"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3\",\"dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy\"]},\"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol\":{\"keccak256\":\"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c\",\"dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS\"]},\"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol\":{\"keccak256\":\"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a\",\"dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab\",\"dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol\":{\"keccak256\":\"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67\",\"dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol\":{\"keccak256\":\"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415\",\"dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol\":{\"keccak256\":\"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd\",\"dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc\"]},\"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol\":{\"keccak256\":\"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952\",\"dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958\"]},\"node_modules/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256\",\"dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087\",\"dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9\",\"dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/IRngSystem.sol\":{\"keccak256\":\"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02\",\"dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/CharacterSystem.sol\":{\"keccak256\":\"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465\",\"dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN\"]},\"src/utils.sol\":{\"keccak256\":\"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57\",\"dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"enterGame"},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getCharacterTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCurrentAvailableLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getOwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterTokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerEntityId","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStats","outputs":[{"internalType":"struct StatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"baseHitPoints","type":"uint256"},{"internalType":"int256","name":"currentHp","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidCharacterId","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"isValidOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintCharacter","outputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"rollStats"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"characterId","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateTokenUri"}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getOwnerAddress(bytes32)":{"details":"extracts the character nft owner address from the character Id"},"mintCharacter(address,bytes32,string)":{"params":{"account":"the address of the account that will own the character","name":"the keccack256 hash of the characters name to check for duplicates","tokenUri":"the token uri to be set for the character token"},"returns":{"characterId":"the bytes32 character id combination of the owner address and the tokenId"}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/CharacterSystem.sol":"CharacterSystem"},"evmVersion":"paris","libraries":{}},"sources":{"constants.sol":{"keccak256":"0xdd3ebcb4c411e951e1d5c68d6287c597f8f6ab874b48ae96600e024326bd7059","urls":["bzz-raw://61cf2ec85c2dcfde0de8d6c12cdb78b59f8b94a8662dd122bc1aca013cc69c7c","dweb:/ipfs/QmdsELzf5enAbpe5ERXRJgyg2PvtiAUiiX7dT85BLtKpCM"],"license":"MIT"},"lib/ERC1155-puppet/IERC1155System.sol":{"keccak256":"0x324481afcc10bb871430340e0ddea5613a7a7dc7436ad8067b64e787791d9c74","urls":["bzz-raw://cbf2f86e7c18feb303c9201417a85af320f148907fa637b25b56e7484325d64c","dweb:/ipfs/QmW35pffC8PK5Y7afxLc6qYYiDjH4NayRggogPazy5JsEi"],"license":"MIT"},"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/interfaces/IERC20System.sol":{"keccak256":"0xedfc9636840fcf8c665f0535b0e9469ba191a2b028d6913dcd7a134dc9844ec1","urls":["bzz-raw://d9cc01f46fd862d4cb5a5efd93911c5b98420112ab999d46f0c24fec74a58b4b","dweb:/ipfs/QmXrpDMPj7VS8ywkt4mkhE1FatJcQtR2gCAwr7aEYonmrg"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721.sol":{"keccak256":"0x87b18a3fe819a06930749c60912e28d3add40de2881d976d4d7565858468ac8e","urls":["bzz-raw://90d6f52696977e65bbc4a3d937ac4be843e2d1006591b861b2b3038c7a7e1d16","dweb:/ipfs/QmS2vsjycwSgGPgWrPEDdFK5WTvE6ixhzYQLL57xHJAXNv"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Errors.sol":{"keccak256":"0xc408b8c878980829678cf94ca6d83c71c0587e802221d226c84b66c60a198903","urls":["bzz-raw://9a04ce4eafe37b18476b4dbbd207eff2e33b1ea073a06d5ff8df8e08aa69ac47","dweb:/ipfs/QmTqKcfCXBntqtEcGobHMTJyy37xv93t1342RvqtpgnDQx"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Events.sol":{"keccak256":"0x4ea76f18fbb68319807fe1fa39d3035b8177bd30c3977c40ed41e9810ffebb13","urls":["bzz-raw://2f0508d70a34ce0661e52b4201996bea5e61e0108a4a218acc3728be5d51fbc2","dweb:/ipfs/QmQx9bX9cYUENRvXV55NhHL3TFiNXGqvVyy8aYDA1KCagn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol":{"keccak256":"0xa647391a56ac17e6e73a5fb04d641c8a97abde19a7da80a8fc80902d7cce36aa","urls":["bzz-raw://862f638b4e4b300067f6a485580ec904d428281de46e3a186b558ff3e15e4733","dweb:/ipfs/QmUkgdfZJtwyBSrCyckw9GVFrZsD1rUAK2Nd3GBH12duLo"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/constants.sol":{"keccak256":"0xf8a29616bcb176258295bae6dcb8c9eada8e18812c823c3490ff238370f3a64d","urls":["bzz-raw://f800f102f773e4c5b2281b44a9f477d7a4d7dca13ddb369fa0d4479cddbfb04c","dweb:/ipfs/QmSiqQuHY8cPTXkpnK3NyZCkeATzjYNpoR8vrijrfLdwqn"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/tables/TokenURI.sol":{"keccak256":"0x7fe5517ff1843d9fe70dd37beb18a954efe3c62f2d484fbf8e0646f22a1493a7","urls":["bzz-raw://abc83f7656b5a33f695d900f9da3fb5896054a41eb0f5c963d2b01794a8461e3","dweb:/ipfs/QmWXV2jZ8Tp3k4zNyqG3GNN9SchsDK1zSQwFXCvEGmnRuy"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/modules/erc721-puppet/utils.sol":{"keccak256":"0xd497c2610d37ef3b800e3aef80d36661c60b5e36325565c3bc5c3ce986b641a5","urls":["bzz-raw://7406b572bdef593e1a8d0faaa94e9869108fc2cc7955da3aa3a62a56428c9a0c","dweb:/ipfs/QmPKnuzAkPVyhpJz25fNCfGcvyPPZZWgsm5QbKZva82EWS"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/AccessControlLib.sol":{"keccak256":"0x9fb1520ec94ce3396760a235db900192b4990c78fd459c449896a74c32b83542","urls":["bzz-raw://4025b37988ece6915b2c867702a4a381829755dd9e5b0b0b32ade85649b00b2a","dweb:/ipfs/QmUsLyetPdhtSdN3MicE1uphXWscKBPSBif8Sd83RC1E6Z"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0xcb1e9fd5cd02cbb7125f2a64c02f89272d4b0f2afc0b43f24b727f023ef06493","urls":["bzz-raw://f4a923e67dea1c1c0a978cbb89d4e27f6e0205f49efe0556ac90b358bd2062ab","dweb:/ipfs/QmZww8gDH9kyXsCaTYWzupNhL1QqR1emAbb5VifFWhDWYF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyEvents.sol":{"keccak256":"0xd8a8c77c864481ee7620adf8b92219f3c68c626271887e26330362642053f504","urls":["bzz-raw://f918e6fcdf4cc8c991ff4c7d81860c6b0e3b4b536e543361309cfecd8a8ecf67","dweb:/ipfs/QmdBuzs7dyGGaceP4QDqu3MLnqeBLbsEpCKGWyz3a9kY8v"],"license":"Apache-2.0"},"node_modules/@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol":{"keccak256":"0xace052155e23df810ba04a93da02fc527efd0a6fd9244d95574af5d8891934e7","urls":["bzz-raw://31d77a8a3cfb552c684867ec96bb8ea0e59573db7d3108cd561b03e4749fd415","dweb:/ipfs/QmepPDf6digkAGepANKv3yW8d5QqmJQqWjgmWSzNJVkMLq"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropy.sol":{"keccak256":"0x9d4556ea3b36960a43e6f4c2df53f5e4ffa980deaa2c15bfdefc5f66258ca748","urls":["bzz-raw://21d4bded2b3b30f3ced6ea24694e3b04bb94cab28796ee2786720a80e0b73bdd","dweb:/ipfs/QmQfBFzSZj9cNxne8izUE1fYvfFoGjAisUa3aeh2YYDuqc"],"license":"Apache 2"},"node_modules/@pythnetwork/entropy-sdk-solidity/IEntropyConsumer.sol":{"keccak256":"0xf3d3dee1e9cbdef70b6c1f4d79aa8b438413e4636c00e79e615da9dc4df9c379","urls":["bzz-raw://0e473522447c8f92a43f4fa3e54d83a789e12cc44b2a86847bd238a7f8827952","dweb:/ipfs/Qmdihx73a89EZYy2GpitTxK92SWDLyPWeWnJTZ4Acva958"],"license":"Apache 2"},"node_modules/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26","urls":["bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256","dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9","urls":["bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087","dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828","urls":["bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9","dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/IRngSystem.sol":{"keccak256":"0x87595683df74e1357f3562deffadb410ac94c98cbc765d4b7327ae3d39032ec0","urls":["bzz-raw://c05e5ed25cff2606f26b2e370801257bfcd6c1fe10b23d21c68b3a6d55fcbb02","dweb:/ipfs/QmV6Ddyj4A86bbsjGfi4J61wcJH6vR9C4RfXmhiQiJuZQn"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/CharacterSystem.sol":{"keccak256":"0x2d85d572da7e3e926a21e3ee464616d739cdea77f4aad1bd4a9e7af71d3da488","urls":["bzz-raw://33cfed9d7ab860d8662aad43f26548c1a29aab365af93b0f38e26a958161b465","dweb:/ipfs/Qmdz2hKBD39WCNWksM1rTxLtMdAbBCbwfcnyqAPbgGEJpN"],"license":"MIT"},"src/utils.sol":{"keccak256":"0xf50d451bb280fb33e08f521e168952f5145e69eee7df284ffeb1865b8b5187cc","urls":["bzz-raw://a78e6326639bdf19f606921e48c90663f387cbfd7d8160a461838e9ca6a0fc57","dweb:/ipfs/QmPT6PNCCQKWVP9bwYC4JyfuXJSgbupsgq6MT898gYfa1q"],"license":"MIT"}},"version":1},"id":211} \ No newline at end of file diff --git a/packages/contracts/out/MapSystem.sol/MapSystem.json b/packages/contracts/out/MapSystem.sol/MapSystem.json index 845602636..3a7858dd3 100644 --- a/packages/contracts/out/MapSystem.sol/MapSystem.json +++ b/packages/contracts/out/MapSystem.sol/MapSystem.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220c47d61b49bc23938b62fc8aa7c841674bfa06b7af56051568dd65a107a781da864736f6c63430008180033","sourceMap":"412:4148:216:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220c47d61b49bc23938b62fc8aa7c841674bfa06b7af56051568dd65a107a781da864736f6c63430008180033","sourceMap":"412:4148:216:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:228;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:228;;;689:74;;677:2;662:18;1262:113:123;543:226:228;1755:239:216;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:228;;1401:2;1386:18;1616:110:123;1267:177:228;1580:169:216;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:216:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:216:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:216;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:216;;1279:70;;;;-1:-1:-1;;;1279:70:216;;2807:2:228;1279:70:216;;;2789:21:228;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:216;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:216;;3212:2:228;1360:67:216;;;3194:21:228;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:216;3010:349:228;1360:67:216;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:216;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:216;;605:69;;;;-1:-1:-1;;;605:69:216;;3566:2:228;605:69:216;;;3548:21:228;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:216;3364:399:228;605:69:216;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:216;;3970:2:228;685:62:216;;;3952:21:228;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:216;3768:345:228;685:62:216;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:216;;4320:2:228;885:37:216;;;4302:21:228;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:216;4118:339:228;885:37:216;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:216;;4664:2:228;932:38:216;;;4646:21:228;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:216;4462:339:228;932:38:216;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:216;;5008:2:228;980:91:216;;;4990:21:228;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:216;4806:354:228;980:91:216;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:190:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:190;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:181:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:181;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:181:o;4071:290:178:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:178;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:178:o;2592:291:192:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:192;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:192:o;5796:354:190:-;7947:22;;;16149:3:228;16145:16;;;16054:66;16141:25;;;7947:22:190;;;;16129:38:228;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:190;;;;;;;;;6023:1;16238:11:228;;;6009:16:190;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:190;;-1:-1:-1;;6023:1:190;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:190;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:192:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:192;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:228;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:192;;;;-1:-1:-1;;4107:27:192;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:181:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:181;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;9759:28:181;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:184:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:216:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:216;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:216:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:216;;7009:2:228;4393:63:216;;;6991:21:228;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:216;6807:355:228;4393:63:216;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:216;;7369:2:228;2296:80:216;;;7351:21:228;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:216;7167:403:228;2296:80:216;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:228;;1401:2;1386:18;;1267:177;2515:42:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:216;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:228;2594:9:216;;:20;;1386:18:228;;2594:38:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:216;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:228;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:216;;;;-1:-1:-1;;2754:148:216;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:216;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:190:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:190;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:190;-1:-1:-1;;;;7036:160:190:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:181:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:181;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;12402:28:181;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:181;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:216:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:187:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:187;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:228;18911:18;;3713:52:107;18794:248:228;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:216:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:216;;3609:106;-1:-1:-1;3609:106:216:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:228;25536:15;;;45340:92:45;;;25518:34:228;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:228;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:228;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:228;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:228;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:228;;51494:30:45;27964:279:228;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:228;;;1386:18;;7664:67:24;1267:177:228;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:228;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:228;30142:79;;2092:30:124;;;30130:92:228;2092:30:124;;30238:12:228;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:192;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:192;6914:97;14:332:228;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:228;;1710:439;-1:-1:-1;;;;;1710:439:228:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:228;;2420:180;-1:-1:-1;2420:180:228:o;5165:184::-;-1:-1:-1;;;5214:1:228;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:228;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:228;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:228;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:228;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:228;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:228;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:228;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:228;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:228;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:228;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:228:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:228;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:228:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:228:o;10716:184::-;-1:-1:-1;;;10765:1:228;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:228:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:228;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:228;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:228;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:228;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:228:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:228;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:228:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:228;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:228:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:228;;15702:184;-1:-1:-1;15702:184:228:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:228:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:228:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:228;;21043:640;-1:-1:-1;;;;;;;21043:640:228:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:228:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:228:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:228:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:228;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:228:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:228:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256\",\"dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087\",\"dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9\",\"dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26","urls":["bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256","dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9","urls":["bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087","dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828","urls":["bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9","dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":216} \ No newline at end of file +{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getEntitiesAtPosition","inputs":[{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"entitiesAtPosition","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"isAtPosition","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"_isAtPosition","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"},{"name":"x","type":"uint16","internalType":"uint16"},{"name":"y","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spawn","inputs":[{"name":"entityId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220c47d61b49bc23938b62fc8aa7c841674bfa06b7af56051568dd65a107a781da864736f6c63430008180033","sourceMap":"412:4148:216:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3486,"length":20},{"start":3673,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369e10c7b1161005b57806369e10c7b146100fb578063911c37ae1461011b578063953717d114610130578063e1af802c1461014357600080fd5b806301ffc9a71461008d578063119df25f146100b55780633fbf0c5a146100d557806345ec9354146100e8575b600080fd5b6100a061009b3660046135b9565b61014b565b60405190151581526020015b60405180910390f35b6100bd6101e4565b6040516001600160a01b0390911681526020016100ac565b6100a06100e336600461360d565b6101f3565b604051601f1936013581526020016100ac565b61010e610109366004613649565b610236565b6040516100ac91906136b8565b61012e6101293660046136cb565b610249565b005b61012e61013e36600461360d565b610365565b6100bd6105a2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101ee6105ac565b905090565b6000806000610201866105de565b915091508461ffff168261ffff1614801561022357508361ffff168161ffff16145b1561022d57600192505b50509392505050565b6060610242838361068f565b9392505050565b60006102548261074e565b9050806001600160a01b03166102686101e4565b6001600160a01b0316146102e85760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920746865206f776e65722063616e20737061776e206120636861726160448201527f637465720000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102f1826107eb565b1561033e5760405162461bcd60e51b815260206004820152601960248201527f43686172616374657220616c726561647920737061776e65640000000000000060448201526064016102df565b61034a82600080610890565b610355826001610958565b61036160008084610a16565b5050565b60006103708461074e565b9050806001600160a01b03166103846101e4565b6001600160a01b0316146104005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c7920746865206f776e65722063616e206d6f766520612063686172616360448201527f746572000000000000000000000000000000000000000000000000000000000060648201526084016102df565b610409846107eb565b6104555760405162461bcd60e51b815260206004820152601560248201527f436861726163746572206e6f7420737061776e6564000000000000000000000060448201526064016102df565b600080610461866105de565b91509150600080610470610adc565b915091508061ffff168761ffff16106104cb5760405162461bcd60e51b815260206004820152600f60248201527f58206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b8161ffff168661ffff16106105225760405162461bcd60e51b815260206004820152600f60248201527f59206f7574206f6620626f756e6473000000000000000000000000000000000060448201526064016102df565b61052e84848989610b59565b61ffff166001146105815760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79206d6f766520312074696c6520617420612074696d65000060448201526064016102df565b61058e8885858a8a610bc7565b6105988787610cc3565b5050505050505050565b60006101ee610fc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806105db5750335b90565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110610618576106186136fa565b6020908102919091010152600080806106717f74625544000000000000000000000000506f736974696f6e0000000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b92509250925061068283838361109a565b9550955050505050915091565b604080516002808252606080830184529260009291906020830190803683370190505090508361ffff1660001b816000815181106106cf576106cf6136fa565b6020026020010181815250508261ffff1660001b816001815181106106f6576106f66136fa565b6020908102919091010152600061072e7f74625544000000000000000000000000456e7469746965734174506f7369746983836110bd565b90506107456107408260008451611184565b611212565b95945050505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610787576107876136fa565b602090810291909101015260006107e07f74625544000000000000000000000000436861726163746572730000000000008360017e55040020142001000000000000000000000000000000000000000000000000611223565b60601c949350505050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610824576108246136fa565b6020908102919091010152600061087c7f74625544000000000000000000000000537061776e656400000000000000000083837e01010001000000000000000000000000000000000000000000000000000000611223565b90506108888160f81c90565b949350505050565b6040805160f084811b7fffff0000000000000000000000000000000000000000000000000000000000009081166020808501919091529185901b1660228301528251600481840301815260016024840181815260648501909552909360009360609385939160440190803683370190505090508681600081518110610917576109176136fa565b602090810291909101015261094f7f74625544000000000000000000000000506f736974696f6e0000000000000000828686866112e0565b50505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061098e5761098e6136fa565b602002602001018181525050610a117f74625544000000000000000000000000537061776e656400000000000000000060001b826000856040516020016109dc91151560f81b815260010190565b60408051601f198184030181529190527e01010001000000000000000000000000000000000000000000000000000000611395565b505050565b6040805160028082526060820183526000926020830190803683370190505090508361ffff1660001b81600081518110610a5257610a526136fa565b6020026020010181815250508261ffff1660001b81600181518110610a7957610a796136fa565b602002602001018181525050610ad67f74625544000000000000000000000000456e7469746965734174506f7369746960001b82600085604051602001610ac291815260200190565b60405160208183030381529060405261140b565b50505050565b60408051600080825260208201909252819060008080610b3c7f746255440000000000000000000000004d6170436f6e66696700000000000000857e04020002020000000000000000000000000000000000000000000000000000610fca565b925092509250610b4d83838361109a565b95509550505050509091565b6000808361ffff168661ffff1611610b7a57610b758685613726565b610b84565b610b848487613726565b905060008361ffff168661ffff1611610ba657610ba18685613726565b610bb0565b610bb08487613726565b9050610bbc8183613748565b979650505050505050565b6000610bd38585610236565b90506000805b8251811015610c5f5787838281518110610bf557610bf56136fa565b602002602001015103610c4d576001915060008360018551610c179190613763565b81518110610c2757610c276136fa565b60200260200101519050610c3d888884846114bd565b610c478888611588565b50610c5f565b80610c5781613776565b915050610bd9565b5080610cad5760405162461bcd60e51b815260206004820152601f60248201527f456e7469747920776173206e6f74206174207468617420706f736974696f6e0060448201526064016102df565b610cb8878585610890565b61094f848489610a16565b6000610cda6000808561ffff168561ffff16611628565b61ffff16905080600003610ced57505050565b6000610cf882611646565b90506000815111610d715760405162461bcd60e51b815260206004820152602760248201527f4e6f206d6f6e737465727320617661696c61626c6520666f722074686973206460448201527f697374616e63650000000000000000000000000000000000000000000000000060648201526084016102df565b606046617a6903610e0b5773__$227e4555c1f608352b26068e438454dd8b$__63bc3a86cf610da1600842613874565b6040518263ffffffff1660e01b8152600401610dbf91815260200190565b600060405180830381865af4158015610ddc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0491908101906138b4565b9050610e9e565b6040517fbc3a86cf00000000000000000000000000000000000000000000000000000000815244600482015273__$227e4555c1f608352b26068e438454dd8b$__9063bc3a86cf90602401600060405180830381865af4158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e9b91908101906138b4565b90505b60005b60068260018451610eb29190613763565b81518110610ec257610ec26136fa565b6020026020010151610ed49190613986565b63ffffffff16811015610fb857610faf838451848481518110610ef957610ef96136fa565b602002602001015163ffffffff16610f1191906139a9565b81518110610f2157610f216136fa565b60200260200101518787604051602401610f529392919092835261ffff918216602084015216604082015260600190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f15bc4248000000000000000000000000000000000000000000000000000000001790526116cd565b50600101610ea1565b505050505050565b60006101ee61177b565b6060600060606000610fda61177b565b9050306001600160a01b0382160361100357610ff78787876117ba565b93509350935050611091565b6040517f419b58fd0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063419b58fd9061104c908a908a908a906004016139bd565b600060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff79190810190613a6e565b93509350939050565b60208301516022840151600091829160f091821c911c5b90969095509350505050565b606060006110c961177b565b9050306001600160a01b038216036110ee576110e68585856118c2565b915050610242565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e7889779061113790889088908890600401613adb565b600060405180830381865afa158015611154573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110e69190810190613b07565b509392505050565b6000818311806111945750835182115b156111d1578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102df93929190613b68565b602084016111df8482613b8d565b905060006111ed8585613763565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061024283602060006118fc565b60008061122e61177b565b9050306001600160a01b038216036112545761124c86868686611977565b915050610888565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061129f908990899089908990600401613ba0565b602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190613bcf565b60006112ea61177b565b9050306001600160a01b0382160361130e5761130986868686866119a4565b610fb8565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb9061135b9089908990899089908990600401613be8565b600060405180830381600087803b15801561137557600080fd5b505af1158015611389573d6000803e3d6000fd5b50505050505050505050565b600061139f61177b565b9050306001600160a01b038216036113be5761130986868686866119ba565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061135b9089908990899089908990600401613c2d565b600061141561177b565b9050306001600160a01b0382160361143857611433858585856119cf565b6114b6565b6040517f150f32620000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063150f326290611483908890889088908890600401613c74565b600060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050505b5050505050565b6040805160028082526060820183526000926020830190803683370190505090508461ffff1660001b816000815181106114f9576114f96136fa565b6020026020010181815250508361ffff1660001b81600181518110611520576115206136fa565b60200260200101818152505060008260405160200161154191815260200190565b6040516020818303038152906040529050610fb87f74625544000000000000000000000000456e7469746965734174506f7369746960001b83600087602002855186611a0a565b6040805160028082526060820183526000926020830190803683370190505090508261ffff1660001b816000815181106115c4576115c46136fa565b6020026020010181815250508161ffff1660001b816001815181106115eb576115eb6136fa565b602002602001018181525050610a117f74625544000000000000000000000000456e7469746965734174506f7369746960001b8260006020611ac3565b60006107456116378685611b36565b6116418685611b36565b611b58565b60408051600180825281830190925260609160009190602080830190803683370190505090508260001b81600081518110611683576116836136fa565b602090810291909101015260006116bb7f746255440000000000000000000000004d6f627342794c6576656c000000000083836110bd565b90506108886107408260008451611184565b60606000806116e36116de85613ca8565b611b6f565b91509150816000801b03611749576040517ffdde54e20000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000006000351660048201526024016102df565b6020840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16821790526108888285611c32565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806117b5573391505090565b919050565b60606000606060006117cb85611d0d565b90506117d8878783611d30565b935060006117e586611d69565b905080156118b7576117f78888611da6565b935066ffffffffffffff841667ffffffffffffffff81111561181b5761181b6136e4565b6040519080825280601f01601f191660200182016040528015611845576020820181803683370190505b5092506020830160005b828160ff1610156118b45760006118678b8b84611db9565b90506000611884888460ff166028026038011c64ffffffffff1690565b90506118938260008387611e39565b61189d8185613b8d565b9350505080806118ac90613cf8565b91505061184f565b50505b505093509350939050565b60606108886118d2858585611db9565b60006118f7856118e28989611da6565b9060ff166028026038011c64ffffffffff1690565b611f05565b6060600061190a8560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161193057611930613970565b04905060405193506020840160208202810160405281855260005b8281101561196b578451871c82529387019360209091019060010161194b565b50505050509392505050565b60006107456119868686611f28565b60ff858116601b0360080285901c1661199f8587611f7e565b611faf565b6114b685858585856119b58b612000565b612085565b6114b685856119c98487611f7e565b856123be565b60006119db8585611da6565b905060006119f8828560ff166028026038011c64ffffffffff1690565b9050610fb88686868460008888612659565b6000611a1461177b565b9050306001600160a01b03821603611a3957611a34878787878787612a93565b61094f565b6040517fc0a2895a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063c0a2895a90611a88908a908a908a908a908a908a90600401613d17565b600060405180830381600087803b158015611aa257600080fd5b505af1158015611ab6573d6000803e3d6000fd5b5050505050505050505050565b6000611acd61177b565b9050306001600160a01b03821603611aeb5761143385858585612aab565b6040517fd9c03a040000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063d9c03a0490611483908890889088908890600401613ba0565b6000818311611b4e57611b498383613763565b610242565b6102428284613763565b600081831015611b685781610242565b5090919050565b6040805160018082528183019092526000918291829160208083019080368337019050509050837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681600081518110611bc857611bc86136fa565b602090810291909101015260008080611c217f7462776f726c6400000000000000000046756e6374696f6e53656c6563746f72857e24020020040000000000000000000000000000000000000000000000000000610fca565b925092509250610682838383612b04565b60606000611c3e610fc0565b90506001600160a01b0381163003611c7f576000611c66611c5d6105ac565b60008787612b10565b9350905080611c7857611c7883612c4b565b50506101de565b6040517f3ae7af080000000000000000000000000000000000000000000000000000000081526001600160a01b03821690633ae7af0890611cc69087908790600401613d6d565b6000604051808303816000875af1158015611ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108889190810190613b07565b60006008611d1d60026020613763565b611d279190613d86565b9190911c919050565b606081600003611d4f5750604080516020810190915260008152610242565b6000611d5b8585611f28565b905061074581600085611f05565b60006008600180611d7c60026020613763565b611d869190613763565b611d909190613763565b611d9a9190613d86565b8260ff911c1692915050565b6000610242611db58484612c53565b5490565b60008383604051602001611dce929190613d9d565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b8215611ec05760208310611e6357602083048401935060208381611e5f57611e5f613970565b0692505b8215611ec0576020839003600081841015611e865750600019600884021c611e90565b50600019600882021c5b8554600886021b818451168219821617845250818411611eb1575050610ad6565b50600194909401939182900391015b5b60208210611ee25783548152600190930192601f1990910190602001611ec1565b8115610ad6576000600019600884021c8251865482191691161782525050505050565b60405160208101601f19603f848401011660405282825261117c85858584611e39565b60008282604051602001611f3d929190613d9d565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561117c57611fa560ff601b83900360080287901c1683613b8d565b9150600101611f83565b600060208210611fd557602082048401935060208281611fd157611fd1613970565b0691505b508254600882021b60208290038084111561117c576001850154600882021c82179150509392505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161204f57507e60030220202000000000000000000000000000000000000000000000000000919050565b6101de61207c7f746273746f72650000000000000000005461626c65730000000000000000000084612ca9565b60206000611faf565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361211157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516121049493929190613dd9565b60405180910390a2610fb8565b600061211c87612cc5565b905060005b81518110156121f557600082828151811061213e5761213e6136fa565b6020026020010151905061216a6001826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156121ec576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906121b9908c908c908c908c908c908c90600401613e18565b600060405180830381600087803b1580156121d357600080fd5b505af11580156121e7573d6000803e3d6000fd5b505050505b50600101612121565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161222c9493929190613dd9565b60405180910390a260006122408888611f28565b90506000602087019050612258826000895184612d6c565b600061226385611d69565b11156122e75760006122758a8a612c53565b878155905060208601915060008060005b61228f88611d69565b8160ff1610156122e2576122a48d8d83611db9565b92506122bf8a8260ff166028026038011c64ffffffffff1690565b91506122ce8360008488612d6c565b6122d88286613b8d565b9450600101612286565b505050505b60005b8351811015611389576000848281518110612307576123076136fa565b602002602001015190506123336002826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156123b5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90612382908e908e908e908e908e908e90600401613e18565b600060405180830381600087803b15801561239c57600080fd5b505af11580156123b0573d6000803e3d6000fd5b505050505b506001016122ea565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361244857837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161243b93929190613e71565b60405180910390a2610ad6565b60006124548585611f28565b9050600061246186612cc5565b905060005b8151811015612536576000828281518110612483576124836136fa565b602002602001015190506124af6004826affffffffffffffffffffff1916612d4e90919063ffffffff16565b1561252d576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d906124fa908b908b908b908b90600401613eae565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b505050505b50600101612466565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be86868660405161256b93929190613e71565b60405180910390a2612586828565ffffffffffff1685612e2b565b60005b815181101561094f5760008282815181106125a6576125a66136fa565b602002602001015190506125d26008826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612650576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061261d908b908b908b908b90600401613eae565b600060405180830381600087803b15801561263757600080fd5b505af115801561264b573d6000803e3d6000fd5b505050505b50600101612589565b7f7462000000000000000000000000000000000000000000000000000000000000877fffff0000000000000000000000000000000000000000000000000000000000001614612719577f746200000000000000000000000000000000000000000000000000000000000087886040516020016126d791815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102df939291600401613ee7565b6000612734828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff168361274d9190613763565b6127579190613b8d565b905080821415801561277957508161276f8688613f28565b64ffffffffff1614155b156127c9576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff80881660048301528087166024830152831660448201526064016102df565b818664ffffffffff16111561281a576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff871660248201526044016102df565b6000612827848984612e41565b905060006128348b612cc5565b905060005b81518110156128ff576000828281518110612856576128566136fa565b602002602001015190506128826010826affffffffffffffffffffff1916612d4e90919063ffffffff16565b156128f657606081901c6001600160a01b03166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b81526004016128c39796959493929190613f46565b600060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050505b50600101612839565b5064ffffffffff881660005b8a60ff168160ff16101561293e57612932878260ff166028026038011c64ffffffffff1690565b9091019060010161290b565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d60405161297996959493929190613fa4565b60405180910390a25082841461299a5760006129958c8c612c53565b839055505b60006129a78c8c8c611db9565b90506129bb818a64ffffffffff1689612e2b565b5060005b8151811015612a855760008282815181106129dc576129dc6136fa565b60200260200101519050612a086020826affffffffffffffffffffff1916612d4e90919063ffffffff16565b15612a7c57606081901c6001600160a01b031663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401612a499796959493929190613f46565b600060405180830381600087803b158015612a6357600080fd5b505af1158015612a77573d6000803e3d6000fd5b505050505b506001016129bf565b505050505050505050505050565b610fb8868686868686612aa68d8d611da6565b612659565b6000612ab78585611da6565b90506000612ad4828560ff166028026038011c64ffffffffff1690565b9050610fb8868686612aed8764ffffffffff8716613763565b604080516000815260208101909152889088612659565b6000806110b185612f0f565b60006060600080612b2086612f24565b90925090506001600160a01b038216612b715785612b3d87612fc8565b6040517ffbf10ce60000000000000000000000000000000000000000000000000000000081526004016102df929190613d6d565b80612b8057612b808689613105565b8615612bec577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000176000612bd482613151565b9050612be982612be48b84613b8d565b6131e2565b50505b6000612bf88760101b90565b7fffffffffffffffffffffffffffff0000000000000000000000000000000000001614612c3057612c2b88888488613296565b612c3c565b612c3c8888848861330e565b90999098509650505050505050565b805160208201fd5b60008282604051602001612c68929190613d9d565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6040805160208101849052908101829052600090606001611f3d565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cff57612cff6136fa565b60209081029190910101526000612d377f746273746f726500000000000000000053746f7265486f6f6b7300000000000083836118c2565b9050610888612d498260008451611184565b61336f565b60008160ff1682612d5f8560581c90565b1660ff1614905092915050565b8215612de65760208310612d9657602083048401935060208381612d9257612d92613970565b0692505b8215612de65760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411612dd7575050610ad6565b50600194909401939182900391015b5b60208210612e085780518455600190930192601f1990910190602001612de7565b8115610ad6576000600019600884021c8554835182191691161785555050505050565b610a1183838351612e3c8560200190565b612d6c565b600064ffffffffff821115612e85576040517f7149a3c1000000000000000000000000000000000000000000000000000000008152600481018390526024016102df565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff16808510612eb75780850382019150612ebf565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b602081015160408201516000905b9050915091565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110612f5e57612f5e6136fa565b602090810291909101015260008080612fb77f7462776f726c6400000000000000000053797374656d73000000000000000000857e150200140100000000000000000000000000000000000000000000000000006117ba565b925092509250610682838383613380565b606081601081901b6000612fdb8361338c565b9050827fffffffffffffffffffffffffffff000000000000000000000000000000000000831615613036576130317fffffffffffffffffffffffffffff00000000000000000000000000000000000084166133a3565b61306d565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156130a35761309e836133a3565b6130da565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016130ec93929190613ff3565b6040516020818303038152906040529350505050919050565b61310f8282613447565b6103615761311c82612fc8565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016102df929190614081565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061318a5761318a6136fa565b602090810291909101015260006108887f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000611977565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110613218576132186136fa565b602002602001018181525050610a117f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161326191815260200190565b60408051601f198184030181529190527e200100200000000000000000000000000000000000000000000000000000006119ba565b60006060836001600160a01b031660006132b18589896134a5565b6040516132be91906140ac565b60006040518083038185875af1925050503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b606091505b509097909650945050505050565b60006060836001600160a01b03166133278488886134a5565b60405161333491906140ac565b600060405180830381855af49150503d80600081146132fb576040519150601f19603f3d011682016040523d82523d6000602084013e613300565b6060600061024283601560006118fc565b6000806110b1856134d4565b600061339a60706010613b8d565b9190911b919050565b606060005b6010811015613408577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615613408576001016133a8565b604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000851660208201528151603090910190915281815280610888565b60006134957f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617836134f0565b80610242575061024283836134f0565b60608383836040516020016134bc939291906140c8565b60405160208183030381529060405290509392505050565b6020810151603482015160609190911c9060009060f81c612f1d565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110613529576135296136fa565b602002602001018181525050826001600160a01b031660001b81600181518110613555576135556136fa565b602090810291909101015260006135ad7f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000611977565b90506107458160f81c90565b6000602082840312156135cb57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461024257600080fd5b803561ffff811681146117b557600080fd5b60008060006060848603121561362257600080fd5b83359250613632602085016135fb565b9150613640604085016135fb565b90509250925092565b6000806040838503121561365c57600080fd5b613665836135fb565b9150613673602084016135fb565b90509250929050565b60008151808452602080850194506020840160005b838110156136ad57815187529582019590820190600101613691565b509495945050505050565b602081526000610242602083018461367c565b6000602082840312156136dd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff82811682821603908082111561374157613741613710565b5092915050565b61ffff81811683821601908082111561374157613741613710565b818103818111156101de576101de613710565b6000600019820361378957613789613710565b5060010190565b600181815b808511156137cb5781600019048211156137b1576137b1613710565b808516156137be57918102915b93841c9390800290613795565b509250929050565b6000826137e2575060016101de565b816137ef575060006101de565b8160018114613805576002811461380f5761382b565b60019150506101de565b60ff84111561382057613820613710565b50506001821b6101de565b5060208310610133831016604e8410600b841016171561384e575081810a6101de565b6138588383613790565b806000190482111561386c5761386c613710565b029392505050565b600061024260ff8416836137d3565b604051601f8201601f1916810167ffffffffffffffff811182821017156138ac576138ac6136e4565b604052919050565b600060208083850312156138c757600080fd5b825167ffffffffffffffff808211156138df57600080fd5b818501915085601f8301126138f357600080fd5b815181811115613905576139056136e4565b8060051b9150613916848301613883565b818152918301840191848101908884111561393057600080fd5b938501935b83851015613964578451925063ffffffff831683146139545760008081fd5b8282529385019390850190613935565b98975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff8084168061399d5761399d613970565b92169190910692915050565b6000826139b8576139b8613970565b500690565b8381526060602082015260006139d6606083018561367c565b9050826040830152949350505050565b60005b83811015613a015781810151838201526020016139e9565b50506000910152565b600082601f830112613a1b57600080fd5b815167ffffffffffffffff811115613a3557613a356136e4565b613a486020601f19601f84011601613883565b818152846020838601011115613a5d57600080fd5b6108888260208301602087016139e6565b600080600060608486031215613a8357600080fd5b835167ffffffffffffffff80821115613a9b57600080fd5b613aa787838801613a0a565b9450602086015193506040860151915080821115613ac457600080fd5b50613ad186828701613a0a565b9150509250925092565b838152606060208201526000613af4606083018561367c565b905060ff83166040830152949350505050565b600060208284031215613b1957600080fd5b815167ffffffffffffffff811115613b3057600080fd5b61088884828501613a0a565b60008151808452613b548160208601602086016139e6565b601f01601f19169290920160200192915050565b606081526000613b7b6060830186613b3c565b60208301949094525060400152919050565b808201808211156101de576101de613710565b848152608060208201526000613bb9608083018661367c565b60ff949094166040830152506060015292915050565b600060208284031215613be157600080fd5b5051919050565b85815260a060208201526000613c0160a083018761367c565b8281036040840152613c138187613b3c565b905084606084015282810360808401526139648185613b3c565b85815260a060208201526000613c4660a083018761367c565b60ff861660408401528281036060840152613c618186613b3c565b9150508260808301529695505050505050565b848152608060208201526000613c8d608083018661367c565b60ff851660408401528281036060840152610bbc8185613b3c565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015613cf05780818460040360031b1b83161693505b505050919050565b600060ff821660ff8103613d0e57613d0e613710565b60010192915050565b86815260c060208201526000613d3060c083018861367c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a0840152613d608185613b3c565b9998505050505050505050565b8281526040602082015260006108886040830184613b3c565b80820281158282048414176101de576101de613710565b8281526000602080830184516020860160005b82811015613dcc57815184529284019290840190600101613db0565b5091979650505050505050565b608081526000613dec608083018761367c565b8281036020840152613dfe8187613b3c565b90508460408401528281036060840152610bbc8185613b3c565b86815260c060208201526000613e3160c083018861367c565b8281036040840152613e438188613b3c565b90508560608401528281036080840152613e5d8186613b3c565b9150508260a0830152979650505050505050565b606081526000613e84606083018661367c565b65ffffffffffff851660208401528281036040840152613ea48185613b3c565b9695505050505050565b848152608060208201526000613ec7608083018661367c565b65ffffffffffff851660408401528281036060840152610bbc8185613b3c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107456060830184613b3c565b64ffffffffff81811683821601908082111561374157613741613710565b87815260e060208201526000613f5f60e083018961367c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152613f968185613b3c565b9a9950505050505050505050565b60c081526000613fb760c083018961367c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a0840152613d608185613b3c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516140548160038601602089016139e6565b8084019050816003820152845191506140748260048301602088016139e6565b0160040195945050505050565b6040815260006140946040830185613b3c565b90506001600160a01b03831660208301529392505050565b600082516140be8184602087016139e6565b9190910192915050565b600084516140da8184602089016139e6565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815260148101919091526034019291505056fea2646970667358221220c47d61b49bc23938b62fc8aa7c841674bfa06b7af56051568dd65a107a781da864736f6c63430008180033","sourceMap":"412:4148:216:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:123;;;;;;:::i;:::-;;:::i;:::-;;;516:14:229;;509:22;491:41;;479:2;464:18;2331:198:123;;;;;;;;1262:113;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:229;;;689:74;;677:2;662:18;1262:113:123;543:226:229;1755:239:216;;;;;;:::i;:::-;;:::i;1616:110:123:-;;;-1:-1:-1;;3800:14:123;3796:25;3783:39;1413:25:229;;1401:2;1386:18;1616:110:123;1267:177:229;1580:169:216;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1174:400::-;;;;;;:::i;:::-;;:::i;:::-;;481:687;;;;;;:::i;:::-;;:::i;1942:98:123:-;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:123;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:123:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1755:239:216:-;1836:18;1867:8;1877;1889:22;1902:8;1889:12;:22::i;:::-;1866:45;;;;1930:1;1925:6;;:1;:6;;;:16;;;;;1940:1;1935:6;;:1;:6;;;1925:16;1921:67;;;1973:4;1957:20;;1921:67;1856:138;;1755:239;;;;;:::o;1580:169::-;1652:35;1706:36;1737:1;1740;1706:30;:36::i;:::-;1699:43;1580:169;-1:-1:-1;;;1580:169:216:o;1174:400::-;1224:13;1240:29;1260:8;1240:19;:29::i;:::-;1224:45;;1303:5;-1:-1:-1;;;;;1287:21:216;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1287:21:216;;1279:70;;;;-1:-1:-1;;;1279:70:216;;2807:2:229;1279:70:216;;;2789:21:229;2846:2;2826:18;;;2819:30;2885:34;2865:18;;;2858:62;2956:6;2936:18;;;2929:34;2980:19;;1279:70:216;;;;;;;;;1369:28;1388:8;1369:18;:28::i;:::-;1368:29;1360:67;;;;-1:-1:-1;;;1360:67:216;;3212:2:229;1360:67:216;;;3194:21:229;3251:2;3231:18;;;3224:30;3290:27;3270:18;;;3263:55;3335:18;;1360:67:216;3010:349:229;1360:67:216;1438:28;1451:8;1461:1;1464;1438:12;:28::i;:::-;1476:34;1495:8;1505:4;1476:18;:34::i;:::-;1520:47;1552:1;1555;1558:8;1520:31;:47::i;:::-;1214:360;1174:400;:::o;481:687::-;550:13;566:29;586:8;566:19;:29::i;:::-;550:45;;629:5;-1:-1:-1;;;;;613:21:216;:12;:10;:12::i;:::-;-1:-1:-1;;;;;613:21:216;;605:69;;;;-1:-1:-1;;;605:69:216;;3566:2:229;605:69:216;;;3548:21:229;3605:2;3585:18;;;3578:30;3644:34;3624:18;;;3617:62;3715:5;3695:18;;;3688:33;3738:19;;605:69:216;3364:399:229;605:69:216;693:28;712:8;693:18;:28::i;:::-;685:62;;;;-1:-1:-1;;;685:62:216;;3970:2:229;685:62:216;;;3952:21:229;4009:2;3989:18;;;3982:30;4048:23;4028:18;;;4021:51;4089:18;;685:62:216;3768:345:229;685:62:216;759:15;776;795:22;808:8;795:12;:22::i;:::-;758:59;;;;828:13;843:12;859:15;:13;:15::i;:::-;827:47;;;;897:5;893:9;;:1;:9;;;885:37;;;;-1:-1:-1;;;885:37:216;;4320:2:229;885:37:216;;;4302:21:229;4359:2;4339:18;;;4332:30;4398:17;4378:18;;;4371:45;4433:18;;885:37:216;4118:339:229;885:37:216;944:6;940:10;;:1;:10;;;932:38;;;;-1:-1:-1;;;932:38:216;;4664:2:229;932:38:216;;;4646:21:229;4703:2;4683:18;;;4676:30;4742:17;4722:18;;;4715:45;4777:18;;932:38:216;4462:339:229;932:38:216;988:43;1006:8;1016;1026:1;1029;988:17;:43::i;:::-;:48;;1035:1;988:48;980:91;;;;-1:-1:-1;;;980:91:216;;5008:2:229;980:91:216;;;4990:21:229;5047:2;5027:18;;;5020:30;5086:32;5066:18;;;5059:60;5136:18;;980:91:216;4806:354:229;980:91:216;1081:47;1093:8;1103;1113;1123:1;1126;1081:11;:47::i;:::-;1138:23;1156:1;1159;1138:17;:23::i;:::-;540:628;;;;;481:687;;;:::o;1942:98:123:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:123;3325:45;2992:383;:::o;4891:393:190:-;4998:16;;;5012:1;4998:16;;;;;;;;;4943:8;;;;;;4998:16;;;;;;;;;;;-1:-1:-1;4998:16:190;4969:45;;5035:6;5020:9;5030:1;5020:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;5049:24;;;5136:80;1065:66;5181:9;1194:66;5136:21;:80::i;:::-;5048:168;;;;;;5229:50;5236:11;5249:15;5266:12;5229:6;:50::i;:::-;5222:57;;;;;;;;4891:393;;;:::o;2642:387:181:-;2768:16;;;2782:1;2768:16;;;2706:25;2768:16;;;;;2706:25;2739:26;;2768:16;2782:1;2768:16;;;;;;;;;;-1:-1:-1;2768:16:181;2739:45;;2821:1;2813:10;;2805:19;;2790:9;2800:1;2790:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;2861:1;2853:10;;2845:19;;2830:9;2840:1;2830:12;;;;;;;;:::i;:::-;;;;;;;;;;:34;2871:18;2892:51;1083:66;2930:9;2871:18;2892:27;:51::i;:::-;2871:72;;2957:66;:44;2978:5;2985:1;2988:5;:12;2957:20;:44::i;:::-;:64;:66::i;:::-;2949:75;2642:387;-1:-1:-1;;;;;2642:387:181:o;4071:290:178:-;4183:16;;;4197:1;4183:16;;;;;;;;;4133:13;;;;4183:16;;;;;;;;;;;;-1:-1:-1;4183:16:178;4154:45;;4220:11;4205:9;4215:1;4205:12;;;;;;;;:::i;:::-;;;;;;;;;;:26;4238:13;4254:64;1163:66;4291:9;4302:1;1292:66;4254:26;:64::i;:::-;4332:23;;;4071:290;-1:-1:-1;;;;4071:290:178:o;2592:291:192:-;2702:16;;;2716:1;2702:16;;;;;;;;;2653:12;;;;2702:16;;;;;;;;;;;;-1:-1:-1;2702:16:192;2673:45;;2739:8;2724:9;2734:1;2724:12;;;;;;;;:::i;:::-;;;;;;;;;;:23;2754:13;2770:64;1063:66;2807:9;2754:13;1192:66;2770:26;:64::i;:::-;2754:80;;2848:29;2869:5;2856:20;;7000:5;6914:97;2848:29;2840:38;2592:291;-1:-1:-1;;;;2592:291:192:o;5796:354:190:-;7947:22;;;16149:3:229;16145:16;;;16054:66;16141:25;;;7947:22:190;;;;16129:38:229;;;;16200:16;;;;16196:25;16183:11;;;16176:46;7947:22:190;;;;;;;;;6023:1;16238:11:229;;;6009:16:190;;;;;;;;;7947:22;;-1:-1:-1;;5948:25:190;;-1:-1:-1;;6023:1:190;6009:16;;;7947:22;6009:16;;;;;-1:-1:-1;6009:16:190;5980:45;;6046:6;6031:9;6041:1;6031:12;;;;;;;;:::i;:::-;;;;;;;;;;:21;6059:86;1065:66;6091:9;6102:11;6115:15;6132:12;6059:21;:86::i;:::-;5854:296;;;;5796:354;;;:::o;3908:246:192:-;4004:16;;;4018:1;4004:16;;;;;;;;;3975:26;;4004:16;;;;;;;;;;;-1:-1:-1;4004:16:192;3975:45;;4041:8;4026:9;4036:1;4026:12;;;;;;;;:::i;:::-;;;;;;:23;;;;;4056:93;1063:66;1047:83;;4093:9;4104:1;4125:7;4107:27;;;;;;5694:14:229;5687:22;5682:3;5678:32;5666:45;;5736:1;5727:11;;5543:201;4107:27:192;;;;-1:-1:-1;;4107:27:192;;;;;;;;;1192:66;4056:26;:93::i;:::-;3969:185;3908:246;;:::o;9497:296:181:-;9601:16;;;9615:1;9601:16;;;;;;;;9572:26;;9601:16;;;;;;;;;;-1:-1:-1;9601:16:181;9572:45;;9654:1;9646:10;;9638:19;;9623:9;9633:1;9623:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9694:1;9686:10;;9678:19;;9663:9;9673:1;9663:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;9704:84;1083:66;1067:83;;9745:9;9756:1;9777:8;9759:28;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;9759:28:181;;;;;;;;;;;;;9704:30;:84::i;:::-;9566:227;9497:296;;;:::o;4657:361:184:-;4759:16;;;4695:13;4759:16;;;;;;;;;4695:13;;4783:24;;;4870:80;1067:66;4730:45;1196:66;4870:21;:80::i;:::-;4782:168;;;;;;4963:50;4970:11;4983:15;5000:12;4963:6;:50::i;:::-;4956:57;;;;;;;;4657:361;;:::o;2939:279:216:-;3041:6;3059:13;3083:3;3075:11;;:5;:11;;;:39;;3103:11;3109:5;3103:3;:11;:::i;:::-;3075:39;;;3089:11;3097:3;3089:5;:11;:::i;:::-;3059:55;;3124:13;3148:3;3140:11;;:5;:11;;;:39;;3168:11;3174:5;3168:3;:11;:::i;:::-;3140:39;;;3154:11;3162:3;3154:5;:11;:::i;:::-;3124:55;-1:-1:-1;3196:15:216;3124:55;3196:6;:15;:::i;:::-;3189:22;2939:279;-1:-1:-1;;;;;;;2939:279:216:o;3721:837::-;3833:25;3861:41;3883:8;3893;3861:21;:41::i;:::-;3833:69;;3912:24;3951:9;3946:438;3966:8;:15;3962:1;:19;3946:438;;;4017:8;4002;4011:1;4002:11;;;;;;;;:::i;:::-;;;;;;;:23;3998:327;;4067:4;4045:26;;4089:15;4107:8;4134:1;4116:8;:15;:19;;;;:::i;:::-;4107:29;;;;;;;;:::i;:::-;;;;;;;4089:47;;4154:65;4188:8;4198;4208:1;4211:7;4154:33;:65::i;:::-;4237:50;4268:8;4278;4237:30;:50::i;:::-;4305:5;;;3998:327;4356:3;;;;:::i;:::-;;;;3946:438;;;;4401:19;4393:63;;;;-1:-1:-1;;;4393:63:216;;7009:2:229;4393:63:216;;;6991:21:229;7048:2;7028:18;;;7021:30;7087:33;7067:18;;;7060:61;7138:18;;4393:63:216;6807:355:229;4393:63:216;4466:28;4479:8;4489:1;4492;4466:12;:28::i;:::-;4504:47;4536:1;4539;4542:8;4504:31;:47::i;2000:933::-;2066:24;2101:30;2120:1;2123;2126;2101:30;;2129:1;2101:30;;:18;:30::i;:::-;2093:39;;2066:66;;2146:16;2166:1;2146:21;2142:58;;2183:7;2000:933;;:::o;2142:58::-;2210:34;2247:39;2269:16;2247:21;:39::i;:::-;2210:76;;2331:1;2304:17;:24;:28;2296:80;;;;-1:-1:-1;;;2296:80:216;;7369:2:229;2296:80:216;;;7351:21:229;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:9;7498:18;;;7491:37;7545:19;;2296:80:216;7167:403:229;2296:80:216;2387:19;2471:13;2488:5;2471:22;2467:176;;2515:9;:20;2536;2555:1;2536:15;:20;:::i;:::-;2515:42;;;;;;;;;;;;;1413:25:229;;1401:2;1386:18;;1267:177;2515:42:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2515:42:216;;;;;;;;;;;;:::i;:::-;2509:48;;2467:176;;;2594:38;;;;;2615:16;2594:38;;;1413:25:229;2594:9:216;;:20;;1386:18:229;;2594:38:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2594:38:216;;;;;;;;;;;;:::i;:::-;2588:44;;2467:176;2658:9;2653:274;2696:1;2674:3;2691:1;2678:3;:10;:14;;;;:::i;:::-;2674:19;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;2669:29;;:1;:29;2653:274;;;2719:197;2816:17;2851;:24;2842:3;2846:1;2842:6;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;:::i;:::-;2816:61;;;;;;;;:::i;:::-;;;;;;;2879:1;2882;2754:148;;;;;;;;;11408:25:229;;;11452:6;11494:15;;;11489:2;11474:18;;11467:43;11546:15;11541:2;11526:18;;11519:43;11396:2;11381:18;;11210:358;2754:148:216;;;;-1:-1:-1;;2754:148:216;;;;;;;;;;;;;;;;;;;;2719:17;:197::i;:::-;-1:-1:-1;2700:3:216;;2653:274;;;;2056:877;;;2000:933;;:::o;4048:97:123:-;4089:7;4111:29;:27;:29::i;15347:431:46:-;15477:12;15491:14;15507:12;15527:21;15551:17;:15;:17::i;:::-;15527:41;-1:-1:-1;15603:4:46;-1:-1:-1;;;;;15578:30:46;;;15574:200;;15625:51;15645:7;15654:8;15664:11;15625:19;:51::i;:::-;15618:58;;;;;;;;;15574:200;15704:63;;;;;-1:-1:-1;;;;;15704:31:46;;;;;:63;;15736:7;;15745:8;;15755:11;;15704:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15704:63:46;;;;;;;;;;;;:::i;15347:431::-;;;;;;;;:::o;7036:160:190:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7131:8:190;;;;6793:33;;;;;6839;7166:25;7157:34;;;;-1:-1:-1;7036:160:190;-1:-1:-1;;;;7036:160:190:o;18598:431:46:-;18734:12;18754:21;18778:17;:15;:17::i;:::-;18754:41;-1:-1:-1;18830:4:46;-1:-1:-1;;;;;18805:30:46;;;18801:224;;18852:63;18878:7;18887:8;18897:17;18852:25;:63::i;:::-;18845:70;;;;;18801:224;18943:75;;;;;-1:-1:-1;;;;;18943:37:46;;;;;:75;;18981:7;;18990:8;;19000:17;;18943:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18943:75:46;;;;;;;;;;;;:::i;18801:224::-;18748:281;18598:431;;;;;:::o;2003:574:43:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:43;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:43:o;45284:220:56:-;45350:24;45382:30;45415:32;45433:6;45441:2;45445:1;45415:17;:32::i;17775:457:46:-;17932:7;17947:21;17971:17;:15;:17::i;:::-;17947:41;-1:-1:-1;18023:4:46;-1:-1:-1;;;;;17998:30:46;;;17994:234;;18045:68;18070:7;18079:8;18089:10;18101:11;18045:24;:68::i;:::-;18038:75;;;;;17994:234;18141:80;;;;;-1:-1:-1;;;;;18141:36:46;;;;;:80;;18178:7;;18187:8;;18197:10;;18209:11;;18141:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:46;-1:-1:-1;;;;;6696:30:46;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;-1:-1:-1;;;;;6836:31:46;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;10761:455::-;10933:21;10957:17;:15;:17::i;:::-;10933:41;-1:-1:-1;11009:4:46;-1:-1:-1;;;;;10984:30:46;;;10980:232;;11024:74;11049:7;11058:8;11068:10;11080:4;11086:11;11024:24;:74::i;10980:232::-;11119:86;;;;;-1:-1:-1;;;;;11119:36:46;;;;;:86;;11156:7;;11165:8;;11175:10;;11187:4;;11193:11;;11119:86;;;:::i;12345:451::-;12505:21;12529:17;:15;:17::i;:::-;12505:41;-1:-1:-1;12581:4:46;-1:-1:-1;;;;;12556:30:46;;;12552:240;;12596:78;12625:7;12634:8;12644:17;12663:10;12596:28;:78::i;:::-;12552:240;;;12695:90;;;;;-1:-1:-1;;;;;12695:40:46;;;;;:90;;12736:7;;12745:8;;12755:17;;12774:10;;12695:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12552:240;12499:297;12345:451;;;;:::o;12135:423:181:-;12257:16;;;12271:1;12257:16;;;;;;;;12228:26;;12257:16;;;;;;;;;;-1:-1:-1;12257:16:181;12228:45;;12310:1;12302:10;;12294:19;;12279:9;12289:1;12279:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12350:1;12342:10;;12334:19;;12319:9;12329:1;12319:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;12378:21;12420:8;12402:28;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;12402:28:181;;;;;;;;;;;;;12378:52;;12438:109;1083:66;1067:83;;12478:9;12489:1;12499:6;12508:2;12499:11;12520:8;:15;12538:8;12438:29;:109::i;10896:252::-;10981:16;;;10995:1;10981:16;;;;;;;;10952:26;;10981:16;;;;;;;;;;-1:-1:-1;10981:16:181;10952:45;;11034:1;11026:10;;11018:19;;11003:9;11013:1;11003:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11074:1;11066:10;;11058:19;;11043:9;11053:1;11043:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;11084:59;1083:66;1067:83;;11126:9;11137:1;11140:2;11084:31;:59::i;3301:179:216:-;3400:6;3432:40;3437:16;3446:2;3450;3437:8;:16::i;:::-;3455;3464:2;3468;3455:8;:16::i;:::-;3432:4;:40::i;2600:342:187:-;2717:16;;;2731:1;2717:16;;;;;;;;;2657:23;;2688:26;;2717:16;;;;;;;;;;;;-1:-1:-1;2717:16:187;2688:45;;2770:5;2754:23;;2739:9;2749:1;2739:12;;;;;;;;:::i;:::-;;;;;;;;;;:38;2784:18;2805:51;1071:66;2843:9;2784:18;2805:27;:51::i;:::-;2784:72;;2870:66;:44;2891:5;2898:1;2901:5;:12;2870:20;:44::i;3318:662:107:-;3373:23;3516:19;;3570:39;3592:16;3599:8;3592:16;:::i;:::-;3570:21;:39::i;:::-;3515:94;;;;3690:8;3703:1;3672:32;;;3668:97;;3713:52;;;;;3757:7;;;;3713:52;;;18938:98:229;18911:18;;3713:52:107;18794:248:229;3668:97:107;1759:4:23;1744:28;;1738:35;;1847:9;1836:21;1903:20;;1961:43;;3883:92:107;3900:8;3936;3883:4;:92::i;1836:227:46:-;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:46;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:46:o;32759:1315:45:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:45;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:24;;;33532:33:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:45;-1:-1:-1;33518:47:45;-1:-1:-1;894:4:40;884:15;;33573:21:45;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:45;33808:25;:14;33831:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:45;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;37180:522::-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:45;37440:12;:257::i;2681:1129:58:-;2801:22;2831:21;2855;:11;2997:3:43;2975:25;;2901:104;2855:21:58;2831:45;-1:-1:-1;692:17:43;3238:38;;2882:20:58;3044:11;3238:38:43;3044:11:58;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;36171:541:45:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:25;:27;579:1:52;4322:44:25;4288:79;;;4275:93;36635:63:45;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;28764:791::-;29023:37;29063:66;29111:7;29120:8;29063:47;:66::i;:::-;29023:106;-1:-1:-1;29135:26:45;29171:49;29023:106;29202:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;29171:49:45;29135:86;;29259:291;29313:7;29338:8;29373:17;29423:19;29464:1;29479:10;29521:22;29259:36;:291::i;8207:601:46:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:46;-1:-1:-1;;;;;8464:30:46;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;-1:-1:-1;;;;;8627:39:46;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;13190:464::-;13351:21;13375:17;:15;:17::i;:::-;13351:41;-1:-1:-1;13427:4:46;-1:-1:-1;;;;;13402:30:46;;;13398:252;;13442:84;13472:7;13481:8;13491:17;13510:15;13442:29;:84::i;13398:252::-;13547:96;;;;;-1:-1:-1;;;;;13547:41:46;;;;;:96;;13589:7;;13598:8;;13608:17;;13627:15;;13547:96;;;:::i;3486:117:216:-;3549:7;3579:1;3575;:5;:21;;3591:5;3595:1;3591;:5;:::i;:::-;3575:21;;;3583:5;3587:1;3583;:5;:::i;3609:106::-;3668:7;3699:1;3694;:6;;:14;;3707:1;3694:14;;;-1:-1:-1;3703:1:216;;3609:106;-1:-1:-1;3609:106:216:o;5805:471:133:-;5966:16;;;5980:1;5966:16;;;;;;;;;5879:19;;;;;;5966:16;;;;;;;;;;;-1:-1:-1;5966:16:133;5937:45;;6011:21;6003:30;;;5988:9;5998:1;5988:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;6041:24;;;6128:80;1174:66;6173:9;1303:66;6128:21;:80::i;:::-;6040:168;;;;;;6221:50;6228:11;6241:15;6258:12;6221:6;:50::i;2109:683:107:-;2185:23;2216:20;2239:32;:30;:32::i;:::-;2216:55;-1:-1:-1;;;;;;2350:29:107;;2358:4;2350:29;2346:322;;2389:12;2433:153;2467:36;:34;:36::i;:::-;2520:1;2541:8;2569;2433:15;:153::i;:::-;2409:177;-1:-1:-1;2409:177:107;-1:-1:-1;2409:177:107;2595:41;;2609:27;2625:10;2609:15;:27::i;:::-;2644:17;;;;2346:322;2736:51;;;;;-1:-1:-1;;;;;2736:31:107;;;;;:51;;2768:8;;2778;;2736:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2736:51:107;;;;;;;;;;;;:::i;4598:171:25:-;4672:7;579:1:52;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:25;;;;;4598:171;-1:-1:-1;4598:171:25:o;48823:360:45:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:45;;;;;;;;;-1:-1:-1;48986:9:45;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:25:-;5451:7;579:1:52;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:25;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:25:o;53939:303:45:-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:44;;4605:137;52742:274:45;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;6076:2380:44:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;;;-1:-1:-1;;;579:1:52;804:25:53;;782:48;6806:135:44;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:44;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:44;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;8389:20:44;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:44;;;;:::o;5042:669::-;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:44;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;50806:191:45:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:45;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:45:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:25;4323:19;:27;;;579:1:52;4322:44:25;4288:79;;;4275:93;52003:32:45;;:::i;:::-;;-1:-1:-1;51990:3:45;;51958:84;;8945:812:44;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:44;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;4015:652:45:-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:51;;4015:652:45;-1:-1:-1;4015:652:45:o;4314:111::-;4469:185;4515:85;1213:66:51;4591:7:45;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:54;13976:4:45;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:26;;;;;14021:47:45;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:45;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:45;894:4:40;884:15;;14520:54:45;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:44;;;14915:102:45;-1:-1:-1;894:4:40;884:15;;15191:47:45;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:45;:14;15615:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:45;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:45;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:54;16125:4:45;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:26;;;;;16169:46:45;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:45;;16035:338;;17013:1682;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:54;17798:4:45;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:26;;;;;17851:54:45;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:45;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:54;18455:4:45;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:26;;;;;18507:53:45;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:45;;18365:326;;44254:4001;44673:14;44652:7;:35;;;44648:161;;44743:14;44759:7;44792;44775:25;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;44775:25:45;;;;-1:-1:-1;;44775:25:45;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:45;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:45;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;25497:12:229;25536:15;;;45340:92:45;;;25518:34:229;25588:15;;;25568:18;;;25561:43;25640:15;;25620:18;;;25613:43;25460:18;;45340:92:45;25291:371:229;45221:218:45;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;25840:25:229;;;25913:12;25901:25;;25881:18;;;25874:53;25813:18;;45581:74:45;25667:266:229;45522:140:45;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:54;46104:4:45;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:26;;;;-1:-1:-1;;;;;46158:55:45;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:45;;46014:486;;;-1:-1:-1;46558:32:45;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:45;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:44;;;-1:-1:-1;47216:248:45;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:54;47858:4:45;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:26;;;;-1:-1:-1;;;;;47911:54:45;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:45;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;19594:539::-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;30235:834::-;30495:37;30535:66;30583:7;30592:8;30535:47;:66::i;:::-;30495:106;-1:-1:-1;30607:26:45;30643:49;30495:106;30674:17;7070:16:24;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;30643:49:45;30607:86;-1:-1:-1;30731:333:45;30785:7;30810:8;30845:17;30895:37;30917:15;30895:37;;;;:::i;:::-;30991:12;;;31001:1;30991:12;;;;;;;;30961:15;;31035:22;30731:36;:333::i;8363:236:133:-;8474:19;8495:29;8569:25;8582:11;8569:12;:25::i;1761:1386:121:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:121;-1:-1:-1;;;;;;2067:27:121;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;2063:106::-;2275:12;2270:64;;2289:45;2317:8;2327:6;2289:27;:45::i;:::-;2413:9;;2409:197;;578:36:124;2955:46;;696:18:144;2954:74:124;2432:22:121;2515:26;2954:74:124;2515:13:121;:26::i;:::-;2490:51;-1:-1:-1;2549:50:121;2563:11;2576:22;2593:5;2490:51;2576:22;:::i;:::-;2549:13;:50::i;:::-;2424:182;;2409:197;2708:14;2681:23;:8;451:5:41;2637:44:124;;2539:148;2681:23:121;:41;;;:461;;2982:160;3043:6;3069:5;3092:13;3125:8;2982:39;:160::i;:::-;2681:461;;;2805:168;2874:6;2900:5;2923:13;2956:8;2805:47;:168::i;:::-;2663:479;;;;-1:-1:-1;1761:1386:121;-1:-1:-1;;;;;;;1761:1386:121:o;348:217:142:-;551:6;545:13;538:4;530:6;526:17;519:40;53371:230:45;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:45;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:45:o;51249:282::-;51494:30;;;;;;28153:19:229;;;28188:12;;;28181:28;;;51337:7:45;;28225:12:229;;51494:30:45;27964:279:229;3658:342:50;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:50;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;3035:136:26:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1489:2340:44:-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:52;804:25:53;;782:48;2208:18:44;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:44;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:44;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:52;804:25:53;;782:48;3761:21:44;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:44;;;;:::o;966:162::-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::40;884:15;;758:151;1098:24:44;1055:5;:68::i;7468:1525:24:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;1413:25:229;;;1386:18;;7664:67:24;1267:177:229;7618:120:24;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:24;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:24;;;;;:::o;7963:242:133:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;8028:19:133;;8173:26;8147:53;;7963:242;;;:::o;5928:433:139:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:139;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;6127:166;;;;;;6306:50;6313:11;6326:15;6343:12;6306:6;:50::i;3486:592:124:-;3550:13;3620:10;451:5:41;2637:44:124;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:124;3839:35;;;;:102;;3888:53;;;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;1546:281:108:-;1708:29;1718:10;1730:6;1708:9;:29::i;:::-;1703:120;;1786:21;:10;:19;:21::i;:::-;1809:6;1754:62;;;;;;;;;;;;:::i;3758:308:132:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:132;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:132;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;5878:19:229;;5922:2;5913:12;;5749:182;5279:27:132;;;;-1:-1:-1;;5279:27:132;;;;;;;;;1286:66;5230:24;:91::i;5594:317:123:-;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:123;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:123;;;;-1:-1:-1;5594:317:123;-1:-1:-1;;;;;5594:317:123:o;6415:321::-;6562:12;6576:17;6619:6;-1:-1:-1;;;;;6619:19:123;6646:79;6672:8;6693:9;6714:8;6646:13;:79::i;:::-;6619:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40103:220:56;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;7829:207:139:-;7940:14;7956:17;8006:25;8019:11;8006:12;:25::i;3165:160:124:-;3228:7;3292:26;438:6;451:5:41;3292:26:124;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:124:o;1862:325::-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:23;3257:13;;3253:24;2007:42:124;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;30154:66:229;30142:79;;2092:30:124;;;30130:92:229;2092:30:124;;30238:12:229;;;;2092:30:124;;;875:21:23;;;2092:30:124;2142:39;760:164:23;955:327:108;1036:4;1178:56;696:18:144;578:36:124;2955:46;;2954:74;1227:6:108;1178:19;:56::i;:::-;:99;;;;1238:39;1258:10;1270:6;1238:19;:39::i;4897:201:123:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;7448:223:139:-;3788:4:23;3774:27;;3768:34;3774:27;;;3768:34;7564:35:139;;;;;;7513:14;;7631:33;;7623:42;6914:97:192;4006:378:136;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:136;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:136;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;7000:5:192;6914:97;14:332:229;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:159;841:20;;901:6;890:18;;880:29;;870:57;;923:1;920;913:12;938:324;1013:6;1021;1029;1082:2;1070:9;1061:7;1057:23;1053:32;1050:52;;;1098:1;1095;1088:12;1050:52;1134:9;1121:23;1111:33;;1163:37;1196:2;1185:9;1181:18;1163:37;:::i;:::-;1153:47;;1219:37;1252:2;1241:9;1237:18;1219:37;:::i;:::-;1209:47;;938:324;;;;;:::o;1449:256::-;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:28;1633:9;1615:28;:::i;:::-;1605:38;;1662:37;1695:2;1684:9;1680:18;1662:37;:::i;:::-;1652:47;;1449:256;;;;;:::o;1710:439::-;1763:3;1801:5;1795:12;1828:6;1823:3;1816:19;1854:4;1883;1878:3;1874:14;1867:21;;1922:4;1915:5;1911:16;1945:1;1955:169;1969:6;1966:1;1963:13;1955:169;;;2030:13;;2018:26;;2064:12;;;;2099:15;;;;1991:1;1984:9;1955:169;;;-1:-1:-1;2140:3:229;;1710:439;-1:-1:-1;;;;;1710:439:229:o;2154:261::-;2333:2;2322:9;2315:21;2296:4;2353:56;2405:2;2394:9;2390:18;2382:6;2353:56;:::i;2420:180::-;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;-1:-1:-1;2571:23:229;;2420:180;-1:-1:-1;2420:180:229:o;5165:184::-;-1:-1:-1;;;5214:1:229;5207:88;5314:4;5311:1;5304:15;5338:4;5335:1;5328:15;5354:184;-1:-1:-1;;;5403:1:229;5396:88;5503:4;5500:1;5493:15;5527:4;5524:1;5517:15;5936:184;-1:-1:-1;;;5985:1:229;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6125:171;6193:6;6232:10;;;6220;;;6216:27;;6255:12;;;6252:38;;;6270:18;;:::i;:::-;6252:38;6125:171;;;;:::o;6301:168::-;6368:6;6394:10;;;6406;;;6390:27;;6429:11;;;6426:37;;;6443:18;;:::i;6474:128::-;6541:9;;;6562:11;;;6559:37;;;6576:18;;:::i;6607:195::-;6646:3;-1:-1:-1;;6670:5:229;6667:77;6664:103;;6747:18;;:::i;:::-;-1:-1:-1;6794:1:229;6783:13;;6607:195::o;7575:476::-;7664:1;7701:5;7664:1;7715:330;7736:7;7726:8;7723:21;7715:330;;;7855:4;-1:-1:-1;;7783:77:229;7777:4;7774:87;7771:113;;;7864:18;;:::i;:::-;7914:7;7904:8;7900:22;7897:55;;;7934:16;;;;7897:55;8013:22;;;;7973:15;;;;7715:330;;;7719:3;7575:476;;;;;:::o;8056:866::-;8105:5;8135:8;8125:80;;-1:-1:-1;8176:1:229;8190:5;;8125:80;8224:4;8214:76;;-1:-1:-1;8261:1:229;8275:5;;8214:76;8306:4;8324:1;8319:59;;;;8392:1;8387:130;;;;8299:218;;8319:59;8349:1;8340:10;;8363:5;;;8387:130;8424:3;8414:8;8411:17;8408:43;;;8431:18;;:::i;:::-;-1:-1:-1;;8487:1:229;8473:16;;8502:5;;8299:218;;8601:2;8591:8;8588:16;8582:3;8576:4;8573:13;8569:36;8563:2;8553:8;8550:16;8545:2;8539:4;8536:12;8532:35;8529:77;8526:159;;;-1:-1:-1;8638:19:229;;;8670:5;;8526:159;8717:34;8742:8;8736:4;8717:34;:::i;:::-;8847:6;-1:-1:-1;;8775:79:229;8766:7;8763:92;8760:118;;;8858:18;;:::i;:::-;8896:20;;8056:866;-1:-1:-1;;;8056:866:229:o;8927:140::-;8985:5;9014:47;9055:4;9045:8;9041:19;9035:4;9014:47;:::i;9262:334::-;9333:2;9327:9;9389:2;9379:13;;-1:-1:-1;;9375:86:229;9363:99;;9492:18;9477:34;;9513:22;;;9474:62;9471:88;;;9539:18;;:::i;:::-;9575:2;9568:22;9262:334;;-1:-1:-1;9262:334:229:o;9601:1110::-;9695:6;9726:2;9769;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;9818:9;9812:16;9847:18;9888:2;9880:6;9877:14;9874:34;;;9904:1;9901;9894:12;9874:34;9942:6;9931:9;9927:22;9917:32;;9987:7;9980:4;9976:2;9972:13;9968:27;9958:55;;10009:1;10006;9999:12;9958:55;10038:2;10032:9;10060:2;10056;10053:10;10050:36;;;10066:18;;:::i;:::-;10112:2;10109:1;10105:10;10095:20;;10135:28;10159:2;10155;10151:11;10135:28;:::i;:::-;10197:15;;;10267:11;;;10263:20;;;10228:12;;;;10295:19;;;10292:39;;;10327:1;10324;10317:12;10292:39;10351:11;;;;10371:310;10387:6;10382:3;10379:15;10371:310;;;10460:3;10454:10;10441:23;;10508:10;10501:5;10497:22;10490:5;10487:33;10477:131;;10562:1;10591:2;10587;10580:14;10477:131;10621:18;;;10404:12;;;;10659;;;;10371:310;;;10700:5;9601:1110;-1:-1:-1;;;;;;;;9601:1110:229:o;10716:184::-;-1:-1:-1;;;10765:1:229;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10905:183;10936:1;10962:10;10999:2;10996:1;10992:10;11021:3;11011:37;;11028:18;;:::i;:::-;11066:10;;11062:20;;;;;10905:183;-1:-1:-1;;10905:183:229:o;11093:112::-;11125:1;11151;11141:35;;11156:18;;:::i;:::-;-1:-1:-1;11190:9:229;;11093:112::o;11573:468::-;11873:6;11862:9;11855:25;11916:2;11911;11900:9;11896:18;11889:30;11836:4;11936:56;11988:2;11977:9;11973:18;11965:6;11936:56;:::i;:::-;11928:64;;12028:6;12023:2;12012:9;12008:18;12001:34;11573:468;;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:229;12270:16;;12263:27;12046:250::o;12301:568::-;12354:5;12407:3;12400:4;12392:6;12388:17;12384:27;12374:55;;12425:1;12422;12415:12;12374:55;12454:6;12448:13;12480:18;12476:2;12473:26;12470:52;;;12502:18;;:::i;:::-;12546:114;12654:4;-1:-1:-1;;12578:4:229;12574:2;12570:13;12566:86;12562:97;12546:114;:::i;:::-;12685:2;12676:7;12669:19;12731:3;12724:4;12719:2;12711:6;12707:15;12703:26;12700:35;12697:55;;;12748:1;12745;12738:12;12697:55;12761:77;12835:2;12828:4;12819:7;12815:18;12808:4;12800:6;12796:17;12761:77;:::i;12874:655::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13134:9;13128:16;13163:18;13204:2;13196:6;13193:14;13190:34;;;13220:1;13217;13210:12;13190:34;13243:60;13295:7;13286:6;13275:9;13271:22;13243:60;:::i;:::-;13233:70;;13343:2;13332:9;13328:18;13322:25;13312:35;;13393:2;13382:9;13378:18;13372:25;13356:41;;13422:2;13412:8;13409:16;13406:36;;;13438:1;13435;13428:12;13406:36;;13461:62;13515:7;13504:8;13493:9;13489:24;13461:62;:::i;:::-;13451:72;;;12874:655;;;;;:::o;13534:442::-;13797:6;13786:9;13779:25;13840:2;13835;13824:9;13820:18;13813:30;13760:4;13860:56;13912:2;13901:9;13897:18;13889:6;13860:56;:::i;:::-;13852:64;;13964:4;13956:6;13952:17;13947:2;13936:9;13932:18;13925:45;13534:442;;;;;;:::o;13981:335::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14162:9;14156:16;14195:18;14187:6;14184:30;14181:50;;;14227:1;14224;14217:12;14181:50;14250:60;14302:7;14293:6;14282:9;14278:22;14250:60;:::i;14321:329::-;14362:3;14400:5;14394:12;14427:6;14422:3;14415:19;14443:76;14512:6;14505:4;14500:3;14496:14;14489:4;14482:5;14478:16;14443:76;:::i;:::-;14564:2;14552:15;-1:-1:-1;;14548:88:229;14539:98;;;;14639:4;14535:109;;14321:329;-1:-1:-1;;14321:329:229:o;14655:359::-;14858:2;14847:9;14840:21;14821:4;14878:44;14918:2;14907:9;14903:18;14895:6;14878:44;:::i;:::-;14953:2;14938:18;;14931:34;;;;-1:-1:-1;14996:2:229;14981:18;14974:34;14870:52;14655:359;-1:-1:-1;14655:359:229:o;15019:125::-;15084:9;;;15105:10;;;15102:36;;;15118:18;;:::i;15149:548::-;15473:6;15462:9;15455:25;15516:3;15511:2;15500:9;15496:18;15489:31;15436:4;15537:57;15589:3;15578:9;15574:19;15566:6;15537:57;:::i;:::-;15642:4;15630:17;;;;15625:2;15610:18;;15603:45;-1:-1:-1;15679:2:229;15664:18;15657:34;15529:65;15149:548;-1:-1:-1;;15149:548:229:o;15702:184::-;15772:6;15825:2;15813:9;15804:7;15800:23;15796:32;15793:52;;;15841:1;15838;15831:12;15793:52;-1:-1:-1;15864:16:229;;15702:184;-1:-1:-1;15702:184:229:o;16260:794::-;16655:6;16644:9;16637:25;16698:3;16693:2;16682:9;16678:18;16671:31;16618:4;16725:57;16777:3;16766:9;16762:19;16754:6;16725:57;:::i;:::-;16830:9;16822:6;16818:22;16813:2;16802:9;16798:18;16791:50;16864:32;16889:6;16881;16864:32;:::i;:::-;16850:46;;16932:6;16927:2;16916:9;16912:18;16905:34;16988:9;16980:6;16976:22;16970:3;16959:9;16955:19;16948:51;17016:32;17041:6;17033;17016:32;:::i;17059:709::-;17429:6;17418:9;17411:25;17472:3;17467:2;17456:9;17452:18;17445:31;17392:4;17499:57;17551:3;17540:9;17536:19;17528:6;17499:57;:::i;:::-;17604:4;17596:6;17592:17;17587:2;17576:9;17572:18;17565:45;17658:9;17650:6;17646:22;17641:2;17630:9;17626:18;17619:50;17686:32;17711:6;17703;17686:32;:::i;:::-;17678:40;;;17755:6;17749:3;17738:9;17734:19;17727:35;17059:709;;;;;;;;:::o;17773:604::-;18082:6;18071:9;18064:25;18125:3;18120:2;18109:9;18105:18;18098:31;18045:4;18152:57;18204:3;18193:9;18189:19;18181:6;18152:57;:::i;:::-;18257:4;18249:6;18245:17;18240:2;18229:9;18225:18;18218:45;18311:9;18303:6;18299:22;18294:2;18283:9;18279:18;18272:50;18339:32;18364:6;18356;18339:32;:::i;18382:407::-;18465:5;18505;18499:12;18547:4;18540:5;18536:16;18530:23;18572:66;18664:2;18660;18656:11;18647:20;;18690:1;18682:6;18679:13;18676:107;;;18770:2;18764;18754:6;18751:1;18747:14;18744:1;18740:22;18736:31;18732:2;18728:40;18724:49;18715:58;;18676:107;;;;18382:407;;;:::o;19047:175::-;19084:3;19128:4;19121:5;19117:16;19157:4;19148:7;19145:17;19142:43;;19165:18;;:::i;:::-;19214:1;19201:15;;19047:175;-1:-1:-1;;19047:175:229:o;19227:793::-;19588:6;19577:9;19570:25;19631:3;19626:2;19615:9;19611:18;19604:31;19551:4;19658:57;19710:3;19699:9;19695:19;19687:6;19658:57;:::i;:::-;19763:4;19751:17;;19746:2;19731:18;;19724:45;19788:12;19836:15;;;19831:2;19816:18;;19809:43;19889:15;;19883:3;19868:19;;19861:44;19942:22;;;19936:3;19921:19;;19914:51;19982:32;19946:6;19999;19982:32;:::i;:::-;19974:40;19227:793;-1:-1:-1;;;;;;;;;19227:793:229:o;20545:320::-;20752:6;20741:9;20734:25;20795:2;20790;20779:9;20775:18;20768:30;20715:4;20815:44;20855:2;20844:9;20840:18;20832:6;20815:44;:::i;20870:168::-;20943:9;;;20974;;20991:15;;;20985:22;;20971:37;20961:71;;21012:18;;:::i;21043:640::-;21294:6;21289:3;21282:19;21264:3;21320:2;21353;21348:3;21344:12;21385:6;21379:13;21450:2;21442:6;21438:15;21471:1;21481:175;21495:6;21492:1;21489:13;21481:175;;;21558:13;;21544:28;;21594:14;;;;21631:15;;;;21517:1;21510:9;21481:175;;;-1:-1:-1;21672:5:229;;21043:640;-1:-1:-1;;;;;;;21043:640:229:o;21688:690::-;22023:3;22012:9;22005:22;21986:4;22050:57;22102:3;22091:9;22087:19;22079:6;22050:57;:::i;:::-;22155:9;22147:6;22143:22;22138:2;22127:9;22123:18;22116:50;22189:32;22214:6;22206;22189:32;:::i;:::-;22175:46;;22257:6;22252:2;22241:9;22237:18;22230:34;22312:9;22304:6;22300:22;22295:2;22284:9;22280:18;22273:50;22340:32;22365:6;22357;22340:32;:::i;22383:899::-;22839:6;22828:9;22821:25;22882:3;22877:2;22866:9;22862:18;22855:31;22802:4;22909:57;22961:3;22950:9;22946:19;22938:6;22909:57;:::i;:::-;23014:9;23006:6;23002:22;22997:2;22986:9;22982:18;22975:50;23048:32;23073:6;23065;23048:32;:::i;:::-;23034:46;;23116:6;23111:2;23100:9;23096:18;23089:34;23172:9;23164:6;23160:22;23154:3;23143:9;23139:19;23132:51;23200:32;23225:6;23217;23200:32;:::i;:::-;23192:40;;;23269:6;23263:3;23252:9;23248:19;23241:35;22383:899;;;;;;;;;:::o;23287:511::-;23538:2;23527:9;23520:21;23501:4;23564:56;23616:2;23605:9;23601:18;23593:6;23564:56;:::i;:::-;23668:14;23660:6;23656:27;23651:2;23640:9;23636:18;23629:55;23732:9;23724:6;23720:22;23715:2;23704:9;23700:18;23693:50;23760:32;23785:6;23777;23760:32;:::i;:::-;23752:40;23287:511;-1:-1:-1;;;;;;23287:511:229:o;23803:616::-;24114:6;24103:9;24096:25;24157:3;24152:2;24141:9;24137:18;24130:31;24077:4;24184:57;24236:3;24225:9;24221:19;24213:6;24184:57;:::i;:::-;24289:14;24281:6;24277:27;24272:2;24261:9;24257:18;24250:55;24353:9;24345:6;24341:22;24336:2;24325:9;24321:18;24314:50;24381:32;24406:6;24398;24381:32;:::i;24643:464::-;24890:66;24882:6;24878:79;24867:9;24860:98;24994:6;24989:2;24978:9;24974:18;24967:34;25037:2;25032;25021:9;25017:18;25010:30;24841:4;25057:44;25097:2;25086:9;25082:18;25074:6;25057:44;:::i;25112:174::-;25179:12;25211:10;;;25223;;;25207:27;;25246:11;;;25243:37;;;25260:18;;:::i;25938:901::-;26363:6;26352:9;26345:25;26406:3;26401:2;26390:9;26386:18;26379:31;26326:4;26433:57;26485:3;26474:9;26470:19;26462:6;26433:57;:::i;:::-;26538:4;26526:17;;26521:2;26506:18;;26499:45;26563:12;26611:15;;;26606:2;26591:18;;26584:43;26664:15;;26658:3;26643:19;;26636:44;26711:3;26696:19;;26689:35;;;26761:22;;;26755:3;26740:19;;26733:51;26801:32;26765:6;26818;26801:32;:::i;:::-;26793:40;25938:901;-1:-1:-1;;;;;;;;;;25938:901:229:o;26844:788::-;27209:3;27198:9;27191:22;27172:4;27236:57;27288:3;27277:9;27273:19;27265:6;27236:57;:::i;:::-;27341:4;27333:6;27329:17;27324:2;27313:9;27309:18;27302:45;27395:14;27387:6;27383:27;27378:2;27367:9;27363:18;27356:55;27459:12;27451:6;27447:25;27442:2;27431:9;27427:18;27420:53;27510:6;27504:3;27493:9;27489:19;27482:35;27566:9;27558:6;27554:22;27548:3;27537:9;27533:19;27526:51;27594:32;27619:6;27611;27594:32;:::i;28248:925::-;28697:66;28689:6;28685:79;28680:3;28673:92;28655:3;28784;28816:2;28812:1;28807:3;28803:11;28796:23;28848:6;28842:13;28864:74;28931:6;28927:1;28922:3;28918:11;28911:4;28903:6;28899:17;28864:74;:::i;:::-;28966:6;28961:3;28957:16;28947:26;;29001:2;28997:1;28993:2;28989:10;28982:22;29035:6;29029:13;29013:29;;29051:75;29117:8;29113:1;29109:2;29105:10;29098:4;29090:6;29086:17;29051:75;:::i;:::-;29146:17;29165:1;29142:25;;28248:925;-1:-1:-1;;;;;28248:925:229:o;29178:339::-;29355:2;29344:9;29337:21;29318:4;29375:44;29415:2;29404:9;29400:18;29392:6;29375:44;:::i;:::-;29367:52;;-1:-1:-1;;;;;29459:6:229;29455:55;29450:2;29439:9;29435:18;29428:83;29178:339;;;;;:::o;29709:287::-;29838:3;29876:6;29870:13;29892:66;29951:6;29946:3;29939:4;29931:6;29927:17;29892:66;:::i;:::-;29974:16;;;;;29709:287;-1:-1:-1;;29709:287:229:o;30261:530::-;30446:3;30484:6;30478:13;30500:66;30559:6;30554:3;30547:4;30539:6;30535:17;30500:66;:::i;:::-;30635:2;30631:15;;;;30648:66;30627:88;30588:16;;;;30613:103;;;30743:2;30732:14;;30725:30;;;;30782:2;30771:14;;30261:530;-1:-1:-1;;30261:530:229:o","linkReferences":{"src/libraries/LibChunks.sol":{"LibChunks":[{"start":3454,"length":20},{"start":3641,"length":20}]}}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getEntitiesAtPosition(uint16,uint16)":"69e10c7b","isAtPosition(bytes32,uint16,uint16)":"3fbf0c5a","move(bytes32,uint16,uint16)":"953717d1","spawn(bytes32)":"911c37ae","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"getEntitiesAtPosition\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"entitiesAtPosition\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"isAtPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isAtPosition\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"x\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"y\",\"type\":\"uint16\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"entityId\",\"type\":\"bytes32\"}],\"name\":\"spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/systems/MapSystem.sol\":\"MapSystem\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@libraries/=src/libraries/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol\":{\"keccak256\":\"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9\",\"dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899\",\"dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5\",\"dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791\",\"dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085\",\"dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2\",\"dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R\"]},\"src/codegen/tables/Actions.sol\":{\"keccak256\":\"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392\",\"dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2\",\"dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893\",\"dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405\",\"dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8\",\"dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG\"]},\"src/codegen/tables/EntitiesAtPosition.sol\":{\"keccak256\":\"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4\",\"dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f\",\"dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3\",\"dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch\"]},\"src/codegen/tables/MatchEntity.sol\":{\"keccak256\":\"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b\",\"dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/MobsByLevel.sol\":{\"keccak256\":\"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5\",\"dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa\",\"dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905\",\"dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/Stats.sol\":{\"keccak256\":\"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227\",\"dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256\",\"dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w\"]},\"src/codegen/world/IActionSystem.sol\":{\"keccak256\":\"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f\",\"dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782\",\"dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087\",\"dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5\"]},\"src/codegen/world/IEquipmentSystem.sol\":{\"keccak256\":\"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa\",\"dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b\",\"dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH\"]},\"src/codegen/world/ILootManagerSystem.sol\":{\"keccak256\":\"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0\",\"dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e\",\"dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c\",\"dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9\",\"dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64\",\"dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5\",\"dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1\"]},\"src/libraries/LibChunks.sol\":{\"keccak256\":\"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9\",\"dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv\"]},\"src/systems/MapSystem.sol\":{\"keccak256\":\"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732\",\"dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"getEntitiesAtPosition","outputs":[{"internalType":"bytes32[]","name":"entitiesAtPosition","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"view","type":"function","name":"isAtPosition","outputs":[{"internalType":"bool","name":"_isAtPosition","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"},{"internalType":"uint16","name":"x","type":"uint16"},{"internalType":"uint16","name":"y","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"move"},{"inputs":[{"internalType":"bytes32","name":"entityId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"spawn"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@libraries/=src/libraries/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/systems/MapSystem.sol":"MapSystem"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world-modules/src/utils/SystemSwitch.sol":{"keccak256":"0x5ac59bd7f2db0154a8b8f5eecc8eda69458c7ac488d5defd0c904d79025c79a7","urls":["bzz-raw://89adb066110da44661d12e487bc9adfa6c8396432516057b57ae72ba2ceda3e9","dweb:/ipfs/Qmddoe1812LrdEWbaCzE876kL6AK4S7vUGkcMpzAxPyhvR"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xe9e1b1e588699a15ee81cc46f5959e14ff323787b576681abe7b0163d5988a4e","urls":["bzz-raw://f19076661965fcf60fbf5e58ee8a83daac63e174806af79f5fd4144929cab899","dweb:/ipfs/QmVQxPrkHpSo1fbsqGvToXc6q9x8zrVrGaZjKTKY413QBm"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x5012c0607c8d41a4eed69d8a0430f742844883d3c3f17a6717ac287608b4e6af","urls":["bzz-raw://c389f65d050849cc95a7df9f45145186a60ae892b7d02b26ec92f8a38f8e2ee5","dweb:/ipfs/QmNQPBewaXghhVeJDaC1XUK6BbFrZ5qUjryhmJuyvgWdbF"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/FunctionSelectors.sol":{"keccak256":"0x1ee313f4f1165034b92c5df1fe4cdd9be52b27780245388db3a0267c119fc926","urls":["bzz-raw://a3d58ca6a58e94bc30d5be0fc7a7d1325a92096c8b8b2b3a0531c2c5d0d60791","dweb:/ipfs/QmZSisbANqwnFzwMJnnYBjemLW4Cqn3oL7MkV4HiQR7GKv"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x2d0a0176c583fcd95e430978a48ca29a38536c01b57b6effd08697d2d2bf5f42","urls":["bzz-raw://720d1ea5054e1e53b703345992c9ef61e372f6da66247fcb4e89c279055f9085","dweb:/ipfs/QmXCygeJuEesDRSAamMfJZU9Qz5UCz3dmkBj7SGfEvEEY7"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x84ff02d4275be694bfbe1e60e24539a891dda5df3bacf04f0eb2a974425603d0","urls":["bzz-raw://f88775b86cdc8322742e528072b64d01df3d3ef70d4fc5104412522e468ae4e2","dweb:/ipfs/Qme75CeS2sA8pr1Tyx9GN5atmuG4aBGjMPaagaGtYTjc2R"],"license":"MIT"},"src/codegen/tables/Actions.sol":{"keccak256":"0x63cd48bebaa0414728e9be2c856e4eb01efaead6627a6615da4c77b886805cef","urls":["bzz-raw://c1dfe138555b67362f41c26ce1ab074bfc1fcc4e7c6fd0284b82cc699d80d392","dweb:/ipfs/QmNf8UGE3FZ4U96HkeioE4peWWz1SKPAjhKRrGnpEnCdkQ"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x5a911b5c2218dabb75a117ce2e8946ceccfe009edd2425a1d012d23727372d32","urls":["bzz-raw://d45dc0a37bb1814f9ebaf5264042b729268be557e9f9b58de928206d86e8ede2","dweb:/ipfs/QmTWSB6XUZXtjQAYLRMkRxPeXNLKa8nADAVguFBKoMADHB"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0x907f9803924ab0065992e81ccf9c64f228876401e5a728c27d967448bfb35e98","urls":["bzz-raw://809b9cc95a1c37663b48fe4307ba31fc1b0d794913258f5dc2f2f848b0448893","dweb:/ipfs/QmbyQ5DkdeL5CZppx9vs87E2eRzm6CkYfPAYikGGdbcHxH"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0x27431d9ff6ee373083856c0b7ffc9ac15f1bb93535620e726c621a8b626f4696","urls":["bzz-raw://50c1bf4f51c81d6299e05fbc65b0deb6104a0706ebeb1e618f5c3bd8e556a405","dweb:/ipfs/QmZcgbtpq9RxfQNEDEM6iQ7eHR5ya9wY4AJkWnnxaEjMBq"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x2f840caffed593a80b84a16f186701e0b55eff03cc6fa6c210a6dd9cdf25237d","urls":["bzz-raw://7b6a76de959876e594bf5426dfe3ef9112b84d65e252a117031cfced3bce25a8","dweb:/ipfs/QmTosFfy3ME9N71CjHmTRLUWGJWa8sK81jdNcB3YaFa9oG"],"license":"MIT"},"src/codegen/tables/EntitiesAtPosition.sol":{"keccak256":"0xd0b649485e3837ea8014c2eceb7efa5b5002ad49bb57e87503622d91e0da7501","urls":["bzz-raw://b1c9559099385b1b1c23eb35d8bf72d50da0e813e5d29c90acccfab4a9ba7fe4","dweb:/ipfs/QmX2JCEkcUkTJq1svXUsGs2ucMuSqvSi16z88N4MnZoKRB"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x369731e289e046f20bff48ebb31202c95024ca34bf8fc1d685426878e66dc31f","urls":["bzz-raw://59ec4b81dc56d99ab8ee12323ce7a2157558eb51e5c7094b8b54335c7bdfe50f","dweb:/ipfs/QmbmYzo3LFHUNSNpZT4ZFZ7FFMAwk7DzyA27R8qqLc7mcj"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xf7ba7c8303a8146a874960b3f77484d5ae0d9e3478a698ac08ac08f24d05ff27","urls":["bzz-raw://5d3905e07aaa32e028977c866e03cc0f1a92bd14945e30432f07fc3ebf8d8fc3","dweb:/ipfs/Qmf3UJity3jA727Y8ge5swykZa6YrbQPxaqCygroD6U2ch"],"license":"MIT"},"src/codegen/tables/MatchEntity.sol":{"keccak256":"0x1f0b21a82c18d474347446546973619289392ee9cc745eccbfb4ba802771b2e2","urls":["bzz-raw://f0a514e9aa8c0265e8ac7284587cdfec829ad4904e511a284d44a325f9ee511b","dweb:/ipfs/QmYGbphJpnBQMsTEtAM78kqH56FrzrmBFVNthRM4WLdUSQ"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/MobsByLevel.sol":{"keccak256":"0xf84e0714feee0964737b282a981dfe06d408e5006fe5e31f17ebe02d12be550d","urls":["bzz-raw://58eae71b254ef9d2d50ae3c46b0b03f1a7554b72e1a1743e9a4ef3b73df0f8c5","dweb:/ipfs/QmcY1RuKgtCFrjPfgsfyrmuVW6k94MatmMa4MGT5eNeYj7"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xf71ad66166f5f5ac451aef4b46e44c39958dd6096eaf1f34900e69137633224d","urls":["bzz-raw://52d3c128933601b8f02227b96225f0951234f7aec9ff9a9c8684f8cd101f8baa","dweb:/ipfs/QmWNgxUAUYvogthUFSp6pHfWasWRves9727GMaipfdhzs7"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x2d1705df77428d3bf34209aa624ce6812b49ff5701f3ded65beace10c902450c","urls":["bzz-raw://72c2f8c81b79fd4cc392b8bd7de5479a649a426b66b0073c231acb3e3d80d905","dweb:/ipfs/QmbA6xN5zS6MQ5D1gqSaucayoKjSKjSiprK1oXWmQSWUMw"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/Stats.sol":{"keccak256":"0xe941a99c5bc6b4f21b69b4ad61870a3c4b35fa3a7d8e162c75ac3e7515717891","urls":["bzz-raw://eaa285996201485c500f114b98515ce121d87ec29780085dc509d32dff96b227","dweb:/ipfs/QmbnDdw5KqwfGspTKgikXCkvn6Gi6mVWca2yXiPoumhEJP"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26","urls":["bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256","dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w"],"license":"MIT"},"src/codegen/world/IActionSystem.sol":{"keccak256":"0x3ea10f6af2b29e07f658e961113a68db383bb5df7ec853bd797bd1cc14d19b0d","urls":["bzz-raw://c834cb0bb80ffe10c6175f8a16b827dde9804d459e6aa33691484e419587d47f","dweb:/ipfs/QmXnLXquHjNXN8CCsEL3NPNrQHW6UWY78oginRPtcHZFcw"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0x54157279932a37b055d247901f034848c1f0bffbf262028cf9c69eeedc9b7235","urls":["bzz-raw://ead77ae9ab020f705a998be6229e975b9352486deaa9aa800b6de10338190782","dweb:/ipfs/QmaLrytghaAH6ipaBr4XwsaBcCzeVa5gujHGRNxeztuo4X"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x8b522a844626b33d69ae186dd26f2f7bfd921bf92ed7ed0cee2b8c349d9b64f9","urls":["bzz-raw://647f99949a4584cf4b528415ffea01ad243147548455fe5a8373b042b6af3087","dweb:/ipfs/QmYsgXQDTwrqg7YSJkKtiNZzf63f4jdA4xfni5gb9ap5K5"],"license":"MIT"},"src/codegen/world/IEquipmentSystem.sol":{"keccak256":"0x22fd0489fa8b774694038a2af88ed573bad4a917dbf6bece44c428ebd5a0f1d3","urls":["bzz-raw://67cf7c8fefa5271e81b97a149422c8cf81aa391c55b8e47f919b8fe8d78720fa","dweb:/ipfs/QmdPPC8HTjB6zkdXs8siSTT4k6YFDvUxL8sDYyt9HGeStW"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0xa53c467470bcd3a670b1d8f04a8e8b610bfe46634821110356b3ebd84810f76b","urls":["bzz-raw://6637222d8c7b4c16c6586b6ea4bf726b80e559be14d831863d574ececa149f1b","dweb:/ipfs/QmSG7tH5qZCuXVn44DxYjeHZUh3FM7JXqzmkoP5nMhDwQH"],"license":"MIT"},"src/codegen/world/ILootManagerSystem.sol":{"keccak256":"0xc6caadf1800d688083c234a12cd151746f0271be03a50bb6a654634270ab0864","urls":["bzz-raw://084766afac89e6f74162f69534635f90ec56570019223e22d20342f7853fb4e0","dweb:/ipfs/QmbrQXrTewfgW2NydLgPCdt3Vton5V7nfE7HViXtyrMnoK"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x1e306d0814b36dc00a65b4d4f4dcb2812b254aadc7e79d5adfe6a8fe9c697c80","urls":["bzz-raw://018d71336b01c22f432ffcba50375fb124aa33bf7f0f96dc4b02eacd8064507e","dweb:/ipfs/QmYJubK3du3ZCG87uNsTQBVDj6A646BXqifnRSJTHB6v72"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x7ffc480cffe4c490a65836578d8468ba420cec99f919b67ce0fec75cc1579391","urls":["bzz-raw://c0171e839a340c252b00a44e08349dc4982317f82cc393a391f4e32b1b811d9c","dweb:/ipfs/QmZTNzfeZEkT4PrrwvrPz3JFcpR2qBQ6YbXxUpmTEpyDgS"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0x7afcbb11522c4bb8fa8e86e1ca2f965eb5ba3cb7342a1229120210724ff3e828","urls":["bzz-raw://ae704bc31684551e05b29f55eddc7bd7fcd69e6bd4a54fa774d7d9a327a769b9","dweb:/ipfs/QmZvXXubvwTdDLifLoYhmQbr1M1GKzpputcMo38Au5uvJb"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0xfb774a3d4388291fa5bae54bf1c592cc366a0585e6d24388dfeebaf3abd666b4","urls":["bzz-raw://0986371fcb9f53bac88f2c190faf0f5a77fac686eced664aed5f2f1eb6eaca64","dweb:/ipfs/QmWdgLEV31t27nNQC1KGEfaZHFcuBUayxHm2giZJpAG8hv"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x6259111a19c9e329bd16a154bca9afa89339ce179d278647e34bcdff1868d0de","urls":["bzz-raw://c67088e2ecdb887174b16cdaf87299ad3b3871d7ce1f8c4c51e8def5e6cc8fb5","dweb:/ipfs/QmR2SXkYEkSqaacU6rWGsLdZiefy5kcsVqhvzg4Kob2fk1"],"license":"MIT"},"src/libraries/LibChunks.sol":{"keccak256":"0xb4314b9df31cb353ad6d4b434569294aa159fb23abea1260e638a6297781f767","urls":["bzz-raw://decf1fd82655251b50dd10f1da26f53647d4a2a454a36cd6a735d05de3f8e8f9","dweb:/ipfs/QmXZdcHrHY2tPfUVaxyoMqDxitkzH9o6UXYncihgJzqHwv"],"license":"MIT"},"src/systems/MapSystem.sol":{"keccak256":"0x47c9a77c76fdc128d6ddae173d41eda8af2f954fa9f8b24fef14003dab6028a8","urls":["bzz-raw://8fb79ad2ddf872fab84a6ee1a16f38dccd0b6ef9f29d867f84ea6fb604e9a732","dweb:/ipfs/QmYzJwFgQtYkbbarVZLUsBAi6anfc421Jp5CoFUS79WSvz"],"license":"MIT"}},"version":1},"id":216} \ No newline at end of file